Java中的浮点型和双精度型范围

3
我是Java的初学者,正在阅读一本面向像我这样的初学者的pdf。在我的书中,我发现了这个:

enter image description here

例如,浮点数可能在以下范围内:

1.4E-45 to 3.4028235E+38

所以根据我的数学知识,那个数字可能非常小(靠近零)或相当大,但它不能是负数。

我的理解正确吗?


该 PDF 对于 floatdoubleboolean 是错误的。Java 中布尔变量的大小是多少? 此外,floatdouble 都是浮点数,都可以为负数。 - Jonny Henly
嗯,这是它的参考链接:http://www.ebooksbucket.com/uploads/itprogramming/java/Java_in_a_Nutshell_6th_Edition.pdf - Hairi
严谨地说,long 的默认值是 0Lfloat 的默认值是 0.0f,而 boolean 使用 1 字节,并且可以用作字段或数组中的元素。 - Peter Lawrey
3个回答

2

Java在技术上使用了CPU中实现的IEEE-754运算。+1 - Peter Lawrey

2

该书列出了浮点类型的MIN_VALUEMAX_VALUE。这个范围描述了可用的精度,但并不是所有值都必须落在MIN_VALUEMAX_VALUE之间,你可以轻松地通过将零或负数赋给float变量来确认。

浮点值(floatdouble)可能是以下之一:

  • NaN(不是一个数字)
  • 负无穷大
  • 介于-MAX_VALUE-MIN_VALUE之间的负数
  • 负零
  • 正零
  • 介于MIN_VALUEMAX_VALUE之间的正数
  • 正无穷大

1

在这里,您需要考虑float的最小值。 float的最小值(MIN_VALUE)打印出它可以得到的最准确的float,但不是它可以表示的数学最小值。

整数可以保存负值,并且整数可以稍后转换浮点数。 想一想。

float的范围:32位 -3.4E+38 到 +3.4E+38


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接