标签: c#
我正在尝试将价格转换为最小的货币单位。例如。当接收到值9.45时,应产生结果945。 转换代码应采用双精度并将其转换为整数,同时保持两位十进制精度。
此C#控制台代码给我一个奇怪的舍入错误。
double val = 9.45d; var result = (int)(val * 100); System.Console.WriteLine("Result is " + result); // 944
代码段的结果是944,这使我感到困惑。怎么了?