你有没有观察过这种现象:
如果我尝试在Visual Studio 2010 C#.Net的ImmediateWindow中计算以下计算,我会得到这个奇怪的解决方案。
1E-9 * 100 = 0.00000010000000000000001
1E-9 * 1E+2 = 0.00000010000000000000001
即使我这样计算:
double val = 1E-9;
0.000000001
val = val * 100;
0.00000010000000000000001
如果我在Windows计算中计算相同的计算,我会得到预期的结果:
1E-9 * 100 = 0,0000001
如果有人对这种行为有所了解,我会很高兴收到这些信息。
答案 0 :(得分:0)
如果使用指数表示法并不重要,那么您只是遇到了浮点精度。如果您想要更高的准确度,请使用十进制数字:
decimal val = 1E-9;
0.000000001
val = val * 100;
0.0000001
请参阅What Every Computer Scientist Should Know About Floating-Point Arithmetic