这个问题在这里已有答案:
我真的不知道为什么,但我的双数组有时会绕着我的变量,即使它不应该。奇怪的是,它有时只会这样做,如图所示。所有数组元素都应具有这种长精度。变量“WertunterschiedPerSec”每次也都处于这种精度,但是,如果我将它添加到Zwischenwerte [i],那么它有时会变得不那么精确,即使我什么都不做。有人知道为什么吗?
我建议使用decimal
,但让我们进入确切的细节:
double
,float
和decimal
都是浮点数。
差异是double
和float
是基数2,decimal
是基数10。
基数2数字不能准确地表示所有基数10。
这就是为什么你看到的似乎是“四舍五入”的原因。
我会使用十进制变量而不是double,因为除了使用Math函数之外,您基本上可以执行与double相同的功能。尝试使用Decimals,如果需要转换而不是使用:
Double variable = Convert.ToDouble(decimal var);
小数用于小数,因此它们将包含比浮点数或小数更多的信息