社区
Java SE
帖子详情
double和float的加法产生误差是怎么回事?
creazywind
2008-01-09 02:49:38
double d=35.2+3.2;
float fl=35.2f+3.2f;
System.out.println(d);
System.out.println(fl);
这段代码为什么结果是
38.400000000000006
38.4
...全文
231
4
打赏
收藏
double和float的加法产生误差是怎么回事?
double d=35.2+3.2; float fl=35.2f+3.2f; System.out.println(d); System.out.println(fl); 这段代码为什么结果是 38.400000000000006 38.4
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
creazywind
2008-01-15
打赏
举报
回复
哦 我知道了。那为什么float型得可以正确计算它的小数位是怎么存储的?它和double的表示有什么区别呢?
haoyangguang
2008-01-10
打赏
举报
回复
系统误差,在所难免!
火龙果被占用了
2008-01-09
打赏
举报
回复
这是由于在计算机内部并不能精确地表示0.4而产生的误差,这是IEEE754浮点数规范规定的。
如果在精度要求很高的领域,比如:金融、科学计算等方面,不应该使用浮点数来进行计算,在
Java中要精确地进行小数运算的话可以采用BigDecimal类。
changjiangzhibin
2008-01-09
打赏
举报
回复
精度不同
浮点数累加
误差
解决[项目代码]
double
类型相比
float
类型拥有更大的有效位数,因此能表示更宽范围和更高精度的数值,可以减少一些由
float
类型限制导致的精度问题。 另外,通过多次循环进行累加也是一种简单的减少
误差
的方法。这种方法不是通过算法...
浅谈Java中的高精度整数和高精度小数
这时,如果使用
float
或
double
型来处理,可能会出现计算
误差
,例如
float
型只能保留 6-7 位小数,而
double
型只能保留 15-16 位小数。如果我们需要更高的精度,就需要使用 BigInteger 和 BigDecimal 类来处理高...
Java浮点数
float
和
double
精确计算的精度
误差
问题总结
float
和
double
的精度是由尾数的位数来决定的。浮点数在内存中是按科学计数法来存储的,其整数部分始终是一个隐含着的“1”,由于它是不变的,故不能对精度造成影响。
float
:2^23 = 8388608,一共七位,这意味
计算
误差
的真相:为什么
float
加法
会出现精度损失?
float
(浮点数)是一种在计算机编程中常用的数据类型,它用于表示...在C++、Java等语言中,
float
类型的定义通常如下:需要注意的是,在Java中赋值给
float
类型的数值后面必须加上字母“f”,否则会被默认为
double
类型。
Java中
float
和
double
转换的问题?
为什么
double
转
float
不会出现数据
误差
,而
float
转
double
却
误差
如此之大?
double
d = 3.14;
float
f = (
float
)d; System.out.println(f); 输出结果是:3.14;
float
f = 127.1f;
double
d = f; System.out.println(d...
Java SE
62,623
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章