雲中203 2023-10-26 17:04 采纳率: 0%
浏览 18

float与double的区别是啥

img


求解 为什么我用float只能保持五位有效数字,用double才能把上面的六位保留,不是说float可以保留6到7为吗,(u‿ฺu✿ฺ)

  • 写回答

2条回答 默认 最新

  • 五一编程 2023-10-26 17:53
    关注

    两者的主要区别如下:

    01.在内存中占有的字节数不同

    单精度浮点数在机内存占4个字节

    双精度浮点数在机内存占8个字节

    02.有效数字位数不同

    单精度浮点数有效数字8位

    双精度浮点数有效数字16位

    03.数值取值范围

    单精度浮点数的表示范围:-3.40E+38~3.40E+38

    双精度浮点数的表示范围:-1.79E+308~-1.79E+308

    04.在程序中处理速度不同

    一般来说,CPU处理单精度浮点数的速度比处理双精度浮点数快

    如果不声明,默认小数为double类型,所以如果要用float的话,必须进行强转

    例如:float a=1.3; 会编译报错,正确的写法 float a = (float)1.3;或者float a = 1.3f;(f或F都可以不区分大小写)

    评论

报告相同问题?

问题事件

  • 创建了问题 10月26日