为什么有时我会双舍入我的变量?

时间:2019-03-14 19:09:34

标签: c# floating-point double

我真的不理解为什么,但是我的双精度数组有时会绕过我的变量,即使不是。奇怪的是,就像您在图片中看到的那样,它有时仅执行此操作。所有的数组元素都应具有如此长的精度。变量“ WertunterschiedPerSec”每次都保持这种精度,但是,即使我将其添加到Zwischenwerte [i]中,有时即使在任何地方都没有做任何事情,它的精度有时也会降低。有人知道为什么吗?

the weird "bug"

2 个答案:

答案 0 :(得分:2)

我建议使用decimal,但让我们详细了解一下:

doublefloatdecimal all 浮点。

区别是doublefloat 2底,而decimal 10底

以2为底的数字不能准确代表所有以10为底的数字。

这就是为什么您看到似乎是“四舍五入”的原因。

答案 1 :(得分:0)

我将使用十进制变量而不是double,因为除了使用Math函数之外,您基本上可以执行与double相同的功能。尝试使用小数,如果需要转换而不是使用:

Double variable = Convert.ToDouble(decimal var);

小数表示小数,因此它们将比浮点或小数保存更多的信息