社区
Java SE
帖子详情
java float 精度问题
yu777777777
2012-12-26 02:01:48
这么解决这个float丢失精度的问题
float f = 1.1f;
f = f-0.1f;
System.out.println(f);
这个时候输出的是0.999999而不是1 这个如何让他输出1,谢谢!
...全文
387
10
打赏
收藏
java float 精度问题
这么解决这个float丢失精度的问题 float f = 1.1f; f = f-0.1f; System.out.println(f); 这个时候输出的是0.999999而不是1 这个如何让他输出1,谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yu777777777
2012-12-27
打赏
举报
回复
谢谢大家了 是我JDK版本比较低的原因 把eclipse里面preference-java-jdk compiler从5.0改到6.0就没这个问题了
安特矮油
2012-12-27
打赏
举报
回复
十进制数的二进制表示可能不够精确,浮点数或是双精度浮点数无法精确表示的情况并不少见。浮点数值没办法用十进制来精确表示的原因要归咎于CPU表示浮点数的方法。这样的话您就可能会牺牲一些精度,有些浮点数运算也会引入误差。
isbn888
2012-12-26
打赏
举报
回复
嗯,用大数据类型,精度就不会丢失
Edison徐
2012-12-26
打赏
举报
回复
System.out.println(new BigDecimal("1.1").subtract(new BigDecimal("0.1"))); 并不是所有的小数都可以用二进制浮点数精确表示。LS几个输出1.0的可以换成1.1-0.2试试。 在需要精确答案的地方,避免使用float 和double。 对于货币计算,要用int, long和BigDecimal
我爱淼儿
2012-12-26
打赏
举报
回复
我工作用的环境是 STS2.9, JDK7.0.09. 输出结果也是1.0. 同问,什么情况下会输出0.999999?
yongger520
2012-12-26
打赏
举报
回复
java.math.BigDecimal
Fuuqiu
2012-12-26
打赏
举报
回复
引用 2 楼 howlaa 的回复:
我的在eclipse j2ee版中输出是1.0
测试了下LZ的代码 结果确切的说是:1.0 不知道在什么环境下输出0.9999999?
菖蒲老先生
2012-12-26
打赏
举报
回复
浮点数运算用BigDecimal
呼啸
2012-12-26
打赏
举报
回复
我的在eclipse j2ee版中输出是1.0
rockets311
2012-12-26
打赏
举报
回复
了解一下java.math.BigDecimal
注意需要用它接收String参数的构造方法。
java
float
的
精度
_
java
中的
float
和double的
精度
问题
此文解释了为何
float
的范围比int大(同样4字节),但有些int是
float
无法正确表达的(
精度
丢失)
java
中的
float
和double的
精度
问题
1、背景知识在
java
中没有细讲,只是讲了
float
占32位(bit),double占 64位。对于计算机来说,用位数表示是合适的。但有人喜欢用字节(byte)表示。一个字节占8位。1 byte = 8 bit.所以
float
占4个字节,doubl...
java
float
丢失
精度
Java
中
float
类型的
精度
丢失
问题
分析与解决 在
Java
中,
float
和double是用来表示浮点数的两种数据类型,它们分别占用4字节和8字节的存储空间。虽然double类型比
float
类型
精度
更高,但在某些情况下,
float
类型会出现
精度
丢失的
问题
。本文将讨论
Java
中
float
类型的
精度
丢失
问题
产生的原因,并提供解...
java
float
的
精度
_
java
中
float
和double
精度
问题
背景在
java
中
float
赋值给double,会产生
精度
问题
。
float
a = 2.1f;double b = 3.3;b = a;System.out.println(b);输出为2.0999999046325684。小数的二进制表示
问题
首先我们要搞清楚下面两个
问题
:十进制整数如何转化为二进制数算法很简单。举个例子,11表示成二进制数:11/2=5 余 15/2=2 余 12/2=...
深入剖析
Java
浮点数
精度
问题
及解决之道
Java
浮点数的
精度
问题
源于其底层的二进制表示方式和有限的存储位数。在实际编程中,我们必须谨慎处理浮点数运算,根据具体场景选择合适的方法来避免
精度
问题
。对于一般的浮点数比较,可以使用误差范围进行判断;而对于需要高
精度
计算的场景,BigDecimal类是首选方案。此外,整型运算代替浮点数运算以及借助
精度
处理库,也能为解决浮点数
精度
问题
提供有效的途径。通过深入理解和合理运用这些方法,开发者能够编写出更加健壮和准确的
Java
程序。
java
浮点数
精度
问题
及解决方案
Java
浮点型
精度
问题
源于二进制存储机制导致十进制小数无法精确表示,常见于0.1+0.2≠0.3等场景。解决方案包括:1)使用BigDecimal构造时优先采用String参数避免误差;2)浮点比较需设定误差范围;3)金融计算可转为整数运算;4)利用第三方数学库。核心原则是:精确计算场景禁用
float
/double,合理选择工具并控制运算过程。通过BigDecimal的精确构造、舍入控制及格式化输出,可以有效解决工程中的
精度
痛点。
Java SE
62,629
社区成员
307,258
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章