FLOAT数据类型是单精度32位IEEE 754浮点,DOUBLE数据类型是双精度64位IEEE 754浮点.

这是什么意思?什么时候我应该使用float而不是double,反之亦然?

推荐答案

它上面的Wikipedia page是一个很好的起点.

总而言之:

  • float以32位表示,1位符号位、8位指数位和23位有效位(或科学符号数字的后续内容:2.33728*1012;33728是有效位).

  • double以64位表示,1个符号位、11个指数位和52个有效位.

默认情况下,Java使用double来表示其浮点数字(因此文本3.14被键入double).它的数据类型也会给你一个更大的数字范围,所以我强烈建议使用float以上.

可能有某些库实际上强制您使用float,但一般来说,除非您能保证您的结果足够小,可以放在floatprescribed range中,否则最好 Select 使用double.

如果你需要准确度——例如,你不能有一个不准确的十进制值(比如1/10 + 2/10),或者你用货币做anything(例如,在系统中代表10.33美元),那么使用BigDecimal,它可以支持任意精度,并优雅地处理类似情况.

Java相关问答推荐

Java应用程序崩溃时试图读取联系人从电话

如何在Docker容器中使用wireock—Webhooks阻止请求?

基本时态运算的ISO-8601周数据表示法

为什么一个Test的instance?& gt;在构造函数中接受非空对象?

R.id.main给我一个红色错误,无法解析MainActivity.java中的符号main

Spring Boot 3.2.2中的@Inject和@Resource Remove

使用Mockito进行的Junit测试失败

第三方Jar pom.xml

Jenv-相同的Java版本,但带有前缀

SonarLint:只能有条件地调用方法(S)

舰队运行配置Maven版本

AbstractList保证溢出到其他方法

从12小时开始的日期模式

为什么相同的数据条码在视觉上看起来不同?

Java递归泛型是否可以被视为继承和重写的语法糖

Cucumber java-maven-示例表-未定义一步

java.lang.NoSuchMethodError:';org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream$Builder org.apache.poi-poi-ooxml-5.2.4

OpenAPI Maven插件生成错误的Java接口名称

将在 Docker 中运行的 Spring Boot 连接到在 Docker 中运行的 PostgreSQL,无需 compose 文件?

将非滚动组件添加到 JScrollPane