gpt4 book ai didi

c# - 获取 double 小数?

转载 作者:太空狗 更新时间:2023-10-29 22:32:26 29 4
gpt4 key购买 nike

我有一个函数可以将一个 double 加到另一个 double 上,但我只需要将小数点后的数字相加,数字的数量因数字的大小而异。

public double Calculate(double x, double add) 
{
string xstr;

if (x >= 10)
xstr = x.ToString("00.0000", NumberFormatInfo.InvariantInfo);
if (x >= 100)
xstr = x.ToString("000.000", NumberFormatInfo.InvariantInfo);
if (x < 10)
xstr = x.ToString("0.00000", NumberFormatInfo.InvariantInfo);

string decimals = xstr.Remove(0, xstr.IndexOf(".") + 1);
decimals = (Convert.ToDouble(decimals) + add).ToString();
xstr = xstr.Substring(0, xstr.IndexOf(".") + 1) + decimals;
x = Convert.ToDouble(xstr, NumberFormatInfo.InvariantInfo);

return x;
}

我想知道是否有更简单的方法来执行此操作,而不必先将数字转换为字符串,然后再添加到它的小数部分。如您所见,要添加的数字应始终是小数点分隔符所在的 6 位数字。

最佳答案

如果您将对象的余数除以 1,您将得到该数字的小数部分:

double remainder = someDouble % 1;

把整个方法写出来,很简单:

public double Calculate(double x, double add) 
{
return Math.Floor(x) + (x + add) % 1;
}

(这是您很高兴 % 计算余数而不是模数的时候之一。这也适用于负数。)

关于c# - 获取 double 小数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21489982/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com