我知道计算机中有一个数学问题会导致意外的输出:
var a = .1;
var b = .2;
Console.WriteLine(a + b);
// output: 0.30000000000000004
但是当我在其他一些电脑(例如 w3schools 在线 C# 编译器)中运行此代码时,我得到了
.3
作为答案,这对我来说似乎很奇怪。
为什么会发生这样的事?
不同的编译器、平台和硬件可能以不同的方式处理浮点运算,从而导致您观察到的结果存在差异。在某些情况下,某些编译器或平台可能会执行优化或使用扩展精度算术,这可能会导致不同的输出。
完美的youtube视频你需要观看:)