为什么float a=123.456789;输出a的值是123.456787
答案:2 悬赏:70 手机版
解决时间 2021-03-31 03:19
- 提问者网友:椧運幽默
- 2021-03-30 18:19
为什么float a=123.456789;输出a的值是123.456787
最佳答案
- 五星知识达人网友:思契十里
- 2021-03-30 19:51
虽然是老题了,但还是忍不住回答一下,
float a=123.456789
这种赋值方法是吧double类型的123.456789赋给a;double类型的精度比较高,转换为float类型会损失精度。
至于最后一位为什么会损失精度,原因是输入的123.456789会转换为二进制的double型再降低精度变成二进制的float型,最后再由二进制转换为十进制,故误差在十进制条件下显得很奇怪。
float a=123.456789
这种赋值方法是吧double类型的123.456789赋给a;double类型的精度比较高,转换为float类型会损失精度。
至于最后一位为什么会损失精度,原因是输入的123.456789会转换为二进制的double型再降低精度变成二进制的float型,最后再由二进制转换为十进制,故误差在十进制条件下显得很奇怪。
全部回答
- 1楼网友:荒野風
- 2021-03-30 20:18
float和double类型的数据,系统默认小数6位并且存储有误差的。
深层次原因不必追究。追问刚刚我尝试了float a=6123.
深层次原因不必追究。追问刚刚我尝试了float a=6123.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯