关于Simple C#计算:简单的C#计算 – 数据类型


Simple C# calculation - datatypes

可能是个简单的问题,但这个计算让我很困扰。为什么double test = 57.05 - 57等于0.049999999997158而不是0.05?我应该使用哪个数据类型来获得正确的结果?


使用decimal。读这个。


尝试将.05十进制转换为二进制,并告诉我您得到了什么结果(提示:它是一个重复值)。


长答案:浮点表示法

简短回答:double之类的类型符合IEEE754,它规定数据类型可以在任何地方有小数点(浮动)。由于计算机的二进制表示法,在许多情况下,这些表示法的数学运算结果可能只是实际结果的近似值。


浮点计算不正确。

双精度问题在C网上怎么样