十进制加倍

Jon*_*way 4 .net c#

我有以下测试代码:

decimal test1 = 0.0500000000000000045656554454M;
double test2 = (double)test1;
Run Code Online (Sandbox Code Playgroud)

这导致test2在调试时显示为0.05.为什么它被舍入到2位小数?

谢谢

Jon*_*eet 8

该转换的值实际为0.050000000000000009714451465470119728706777095794677734375,如DoubleConverter所示.这是您转换后的最接近小数的精确值.

使用调试器或普通字符串格式时,通常不会显示确切的结果.