栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java将浮点数转换为两倍而不损失精度

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java将浮点数转换为两倍而不损失精度

这并不是说你实际上获得了更高的精度-而是浮标没有准确地代表你最初瞄准的数字。双被精确地表示原始浮子;

toString
显示的是已经存在的“额外”数据。

例如(假设这些数字不正确,我只是在编造东西),假设你有:

float f = 0.1F;double d = f;

则值f可能恰好是0.100000234523。

d
将具有完全相同的值,但是当你将其转换为字符串时,它将“信任”精度更高的精度,因此不会尽早进行四舍五入,并且你会看到“多余的数字”在那里,但是对你隐藏。

当你转换为字符串并返回时,最终将得到一个比原始浮点数更接近字符串值的双精度值-但这仅在你真的相信字符串值是你真正想要的值时才有用。

你确定float / double是此处使用的合适类型,而不是

BigDecimal
?如果你尝试使用具有精确十进制值的数字(例如,货币),则
BigDecimal
是更合适的IMO类型。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/420312.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号