繁体   English   中英

为什么float的精度与double的精度相同?

[英]Why is float's precision the same as double's?

在两种情况下,运行此代码将产生相同的精度数字

double test = 0.5d;
while (1d != 1d + test) {
    Console.WriteLine(test);
    test /= 2d;
}

最后输出线:2,22044604925031E -16

float test2 = 0.5f;
while (1f != 1f + test2) {
    Console.WriteLine(test2);
    test2 /= 2f;
}

最后输出线:2,220446E -16

根据MSDN官方文档( floatdouble ),float测试的输出应该类似于2,220446E -7 我是否有概念上的误解或编程错误?

概念上的误解。 精度倾向于用小数点表示,E后面的数字是指数 ,它告诉您数字的大小。 请注意,浮点数的确小数位数确实比双精度数少!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM