why does double return this value? C#
本问题已经有最佳答案,请猛点这里访问。
1 2 | double sth = 250 - 249.99; Console.WriteLine(sth); |
为什么返回
浮点数(在本例中为双精度)不能精确表示十进制值。有关详细信息,请参阅此处的此页
如果您需要更精确的表示,请使用
有很多小数具有无限的二进制表示。你所经历的正是这种情况。
有关此主题的详细信息,请参阅:http://www.exploringbinary.com/why-0-point-1-does-not-exist-in-floating-point/
因为当您打印双精度时,您打印的是全双精度值,而不仅仅是点位后的第一个x。
您可以使用string.format只打印前2个数字。
1 2 3 | double sth = 250.00d - 249.99d; string sthString = String.Format("{0:0.00}", sth); Console.WriteLine(sthString); |