为什么我的变量有时会加倍? [重复]

问题描述 投票:0回答:2

这个问题在这里已有答案:

我真的不知道为什么,但我的双数组有时会绕着我的变量,即使它不应该。奇怪的是,它有时只会这样做,如图所示。所有数组元素都应具有这种长精度。变量“WertunterschiedPerSec”每次也都处于这种精度,但是,如果我将它添加到Zwischenwerte [i],那么它有时会变得不那么精确,即使我什么都不做。有人知道为什么吗?

c# floating-point double
2个回答
2
投票

我建议使用decimal,但让我们进入确切的细节:

doublefloatdecimal都是浮点数。

差异是doublefloat是基数2,decimal是基数10。

基数2数字不能准确地表示所有基数10。

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


0
投票

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

Double variable = Convert.ToDouble(decimal var);

小数用于小数,因此它们将包含比浮点数或小数更多的信息

© www.soinside.com 2019 - 2024. All rights reserved.