double float区别 java,float和double有什么区别?

我已经读过双精度和单精度之间的区别。 但是,在大多数情况下, float和double float似乎是可互换的,即,使用一个或另一个似乎不影响结果。 真的是这样吗? 花车和双打何时可以互换? 它们之间有什么区别?

#1楼

双精度为64,单精度(浮点数)为32位。

双精度数的尾数较大(实数的整数位)。

任何不准确之处都会加倍。

#2楼

浮点数的精度低于双精度数。 尽管您已经知道,但请阅读有关浮点算法的知识,以更好地理解。

#3楼

以下是C99标准(ISO-IEC 9899 6.2.5§10)或C ++ 2003(ISO-IEC 14882-2003 3.1.9§8)标准说:

共有三种浮点类型: float , double和long double 。 double类型至少提供与float一样高的精度, long double类型至少提供与double一样高的精度。 float类型的值集是double类型的值集的子集; double类型的值集合是long double类型的值集合的子集。

C ++标准增加了:

浮点类型的值表示形式是实现定义的。

我建议看一看优秀的每位计算机科学家应该了解的关于浮点算法的知识 ,该算法深入地涵盖了IEEE浮点标准。 您将了解表示的详细信息,并且将意识到在幅度和精度之间要进行权衡。 浮点表示的精度随着幅度的减小而增加,因此-1和1之间的浮点数是精度最高的数字。

#4楼

使用浮点数时,您不能相信本地测试将与在服务器端进行的测试完全相同。 您的本地系统以及最终测试的运行环境和编译器可能有所不同。 在某些TopCoder竞赛中,我曾多次看到此问题,尤其是当您尝试比较两个浮点数时。

#5楼

浮点计算中涉及的数字大小不是最相关的东西。 相关的是正在执行的计算。

本质上,如果您正在执行计算并且结果是一个无理数或重复的小数,那么当该数字被压缩为您使用的有限大小的数据结构时,将出现舍入错误。 由于double是float大小的两倍,因此舍入误差会小很多。

测试可能专门使用了会导致这种错误的数字,因此测试了您在代码中使用了适当的类型。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值