试题
考点

java语言-基本数据类型-数据类型的长度和转换

面5笔5

java中3*0.1 == 0.3 将会返回什么?true 还是 false?

A.A true

B.B false

前往“校招VIP”小程序,刷题更快
最新校招难题刷题,快来进刷题群吧
解答

正确答案是 B

答案是B:false,因为浮点数不能完全精确的表示出来,一般都会损失精度。
但是思路是一个比较复杂的浮点实现问题,具体可能参考(待录文章16),既跟浮点数的表示有关,也跟Java的设计机制有关。
需要了解浮点数是如何表示的。
对于0.1来说,其本质是 1 / 10,那么若你用二进制表示它们,然后除的话,是这样的:1 / 1010,然而这一个是除不尽的,是无穷循环。

评论
暂无评论

加载更多