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

数据类型来表示Java中的大十进制

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

数据类型来表示Java中的大十进制

您应该使用BigDecimal-但 使用String构造函数 ,例如:

new BigDecimal("10364055.81");

如果将a传递

double
给BigDecimal,则Java必须首先创建该double,并且因为double无法准确表示大多数十进制小数,因此它
创建as值
10364055.81000000052154064178466796875
然后
将其传递给BigDecimal构造函数。在这种情况下,BigDecimal无法知道您实际上是指舍入器版本。

一般来说,使用BigDecimal的非String构造函数应被视为警告,提示您没有充分利用该类的优点。

编辑
-基于完全重读您想做的事情,我的最初主张可能太强了。当您需要精确表示十进制值时,BigDecimal是一个不错的选择(例如,货币处理是显而易见的选择,例如,您不希望5.99
*一百万

5990016.45

但是,如果你不担心次数存储 在内部
是一个非常略有不同的价值,文字输入的小数,只是想以相同的格式再打印出来,然后根据其他人所说,实例

NumberFormat
(在在这种情况下,
newDecimalFormat("########.##")
)将可以很好地输出double值,否则String.format可以完成很多操作。

至于性能-
BigDecimals自然会比使用基元慢。不过,通常情况下,除非程序的绝大多数都涉及数学运算,否则您不太可能真正注意到任何速度差异。这并不是说您应该全部使用BigDecimals;但是,相反,如果您可以从纯功能很难或不可能实现的功能中获得真正的收益

doubles
,那么就不要在理论上引入微小的性能差异。



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

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

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