如何找到 float 或 double 的范围?
在 Java 中,Float 和 Double 包装类有两个属性,分别返回 float 和 double 数据类型的上限和下限:MIN_VALUE和MAX_VALUE:
System.out.println(Double.MAX_VALUE);
System.out.println(Double.MIN_VALUE);
System.out.println(Float.MAX_VALUE);
System.out.println(Float.MIN_VALUE);
有些处理器和操作系统以不同的方式实现 JVM,因此不同平台的 double 或 float 的范围可能会有一些差异。
float 和 double Java 类型的大小有何不同?
从上面程序的输出中,我们可以看到浮点类型和双 Java 类型的大小差异:
- Java 中 double 的上限范围是 1.7976931348623157E308。
- Java 中 double 的下限范围是 4.9E-324。
- Java 中浮点数的上限范围是 3.4028235E38。
- Java 中浮点数的下限范围是 1.4E-45。
如何在 Java 中声明浮点数和双倍数?
要在 Java 中声明 double,请执行以下操作:
- 指定类型为 double。
- 提供一个变量名。
- 指定一个 double 范围内的值。
下面是如何在 Java 中声明浮点数:
- 指定类型为 float。
- 提供一个变量名。
- 指定一个浮点范围内的值。
- 在最后一个数字后添加字母 f:
Java 的默认小数类型是 double 还是 float?
当 Java 在程序中遇到十进制数,或计算产生浮点数时,Java 会将其视为double。
例如,下面两行代码都无法编译,因为 Java 认为任何小数都是 double。由于浮点数无法处理双倍数的全部精度,因此这三行代码都会出错:
float myboat = 1.2; |
如何解决 double 到 float 的转换错误?
错误 "类型不匹配:无法将 double 转换为 float "可通过以下方法修复:
- 添加字母 f 以明确表示浮点数。
- 将 myBoat 的数据类型从 float 更改为 double。
- 使用转换将返回的 double 转换为 float。
double yourBoat = 10 * 2.5; //将浮点数改为双数
float theBoat = (float) (Math.PI * 10); // 从 double 到 float 的显式转换
比较:
上限 :
- float: 3.4028235E38
- double: 1.7976931348623157E308
- float: 1.4E-45
- double: 4.9E-324
大小:
- float: 32位
- double: 64位
表示法:
- float: 字母 f (.01 f )
- double: 字母 d (0.1 d )
常见用途:
- float: 微型设备、物联网、移动
- double:企业应用程序、JPA、JDBC
是否是Java默认
- float:否
- double:如无特别申明,double是Java默认
备选
- BigDecimal
- BigDecimal
- float: 32 位整数
- double: 64位长
类名:
- float: Float(大写“F”)
- double:Double(大写“D”)
何时使用浮点数,何时使用双倍数?
在日常编程中,使用 double 而不是 float。
在学习 Java 时,double 更容易使用,而且在企业应用程序中最常用。
当内存有限时,例如部署到手持设备、物联网设备或移动应用程序中的应用程序,应使用 float 而不是 double。
在数据仓库或人工智能系统中,有时应用程序会在数组中保存数以万计的值。如果所有值都在浮点数的范围内,那么在这种情况下使用较小的 Java 数据类型是合理的,否则数组元素会不必要地消耗内存。
数学中有浮点数和双精度问题吗?
数据精度可能是double和float类型的问题,因为二进制数并不总是干净地转换为十进制。
例如,以下程序将 11.3999 打印为 5.6 + 5.8 之和:
double precision = 0;
precision = precision + 5.6;
precision = precision + 5.8;
System.out.println(precision); // prints 11.399999999999999
为了避免精度错误,Java 提供了一个名为BigDecimal的类,它可以更高精度地执行浮点表示法算术。