C#从double转换为int会失去精度

时间:2018-09-26 14:07:03

标签: c#

我正在尝试将价格转换为最小的货币单位。例如。当接收到值9.45时,应产生结果945。 转换代码应采用双精度并将其转换为整数,同时保持两位十进制精度。

此C#控制台代码给我一个奇怪的舍入错误。

 double val = 9.45d;
 var result = (int)(val * 100);
 System.Console.WriteLine("Result is " + result); // 944

代码段的结果是944,这使我感到困惑。怎么了?

0 个答案:

没有答案