首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >精度与精度java浮点数

精度与精度java浮点数
EN

Stack Overflow用户
提问于 2017-01-22 15:51:02
回答 2查看 823关注 0票数 2

根据以下网站:精确度与精确度。精度=规格的紧密性。准确性=正确性。不要混淆精确度和精确度。http://introcs.cs.princeton.edu/java/91float/

有没有人能给出一个定义,然后解释一下与java浮点数相关的is精度和准确性之间的区别?

EN

回答 2

Stack Overflow用户

发布于 2017-01-22 16:05:39

精度是您指定的位数,而精度则指定与真实结果的差值。

举个例子:

3.14的精度低于3.149,但如果它被认为是pi的值,则精度更高。

一个Java float的精度大约是6-7位十进制数字。这取决于输入的准确性和算法的数值稳定性,得到的结果有多准确。

票数 4
EN

Stack Overflow用户

发布于 2017-01-22 16:29:13

如果您通读IEEE 754的文档,它描述了关于单精度和双精度类型。它说“几乎所有的硬件和编程语言都使用相同的二进制格式的浮点数”。

通常的格式总长度为32位或64位:

格式:单精度

总位数: 32

有效位: 23 +1符号

指数位:8

最小数:约1.2⋅10(幂)-38

最大数:约3.4⋅10(幂)38

格式:双精度

总位数: 64

有效位: 52 +1符号

指数位: 11

最小数:约5.0⋅10(幂)-324

最大数:约5.0⋅10(幂)-324

Java遵循关键字支持的单精度和双精度类型。

代码语言:javascript
复制
float f = 0.1f; // 32 bit float, note f suffix

double d = 0.1d; // 64 bit float, suffix optional

如果在类、接口、方法上使用strictfp关键字,它将强制所有中间结果遵循IEEE754值,并保证在所有平台上都有相同的结果(准确性)。如果没有strictfp关键字,实现可以在可用的情况下使用扩展的指数范围,从而在许多通用CPU上产生更精确的结果和更快的执行速度。

因此,作为用户/程序员,可以指定精度(四舍五入值)。

示例:

代码语言:javascript
复制
String.format("%.2f", 3.2399) // returns "3.24"
String.format("%.3f", 3.2399) // returns "3.240"

精度是定义计算或规范符合正确值或标准的程度的东西。

有关更多详细信息,请查看Java SE Specifications

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41788581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档