社区
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,谢谢!
...全文
366
10
打赏
收藏
java float 精度问题
这么解决这个float丢失精度的问题 float f = 1.1f; f = f-0.1f; System.out.println(f); 这个时候输出的是0.999999而不是1 这个如何让他输出1,谢谢!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
浮点数
精度
问题
由于浮点数不能在计算机中精确的表示,所以可能导致一些细微的
问题
。一般场景用double就能满足, 如果需要精确计算(比如涉及到金融行业的累计算),可用BigDecimal,还可以 用整型来表示小数,就是将小数乘以10的倍数变为整数再处理。
Java SE
62,634
社区成员
307,269
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章