












1 string a = "4546311.670"; 2 string b = "318241.810"; 3 WriteText("float:"); 4 WriteText(a); 5 WriteText("+"); 6 WriteText(b); 7 float fa = Convert.ToSingle(a); 8 float fb = Convert.ToSingle(b); 9 WriteText("="); 10 float fc = fa + fb; 11 WriteText(string.Format("{0:0.00}",fc)); 12 decimal da = Convert.ToDecimal(a); 13 decimal db = Convert.ToDecimal(b); 14 WriteText("\n\r"); 15 WriteText("decimal:"); 16 WriteText(a); 17 WriteText("+"); 18 WriteText(b); 19 WriteText("="); 20 WriteText((da + db).ToString());
View Code
以上放到.ashx中,直接输出如下:float:4546311.670+318241.810=4864554.00 decimal:4546311.670+318241.810=4864553.480
1)float真的会有误差
2)尤其奇怪的点是:单步执行中可以看到的fc=4864553.50 可是输出的时候{0:N2} {0:0.00}都无法输出4864553.50.
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。