提问人:Zohka 提问时间:7/18/2020 更新时间:7/18/2020 访问量:95
使用 BigDecimal 作为初学者而不是 Double?
Using BigDecimal as a beginner instead of Double?
问:
我目前正在学习 Java,偶然发现了“BigDecimal”的用法。据我所知,“BigDecimal”更精确,因此建议使用它而不是普通的 Double。
我的问题是:我应该总是使用“BigDecimal”而不是 Double,因为它总是更好还是有一些缺点?对于初学者来说,切换到“BigDecimal”是否值得,或者只有在您有更多 Java 经验时才推荐使用?
答:
2赞
Louis Wasserman
7/18/2020
#1
double
每当您使用不需要完美精度的实数时,都应该使用。以下是一些常见示例:
- 计算机图形学,有几个原因:很少需要精确的精度,因为很少有显示器的像素数超过四位数;此外,大多数三角函数仅适用于 和 ,而三角函数对于大多数图形工作至关重要
float
double
- 统计分析;平均值和标准差等指标通常最多比单个数据点的精度高一点
- 随机性(例如),其中点不是特定位数;优先级是某些特定分布的实数
Random.nextDouble()
- 机器学习,其中正在学习乘法因子,不需要特定的十进制精度
对于像金钱这样的价值,在任何时候使用都是糟糕时光的秘诀。 通常应该用于金钱和其他任何您关心特定数量的十进制数字的地方,但它的性能较差,并且提供的数学运算较少。double
BigDecimal
评论
1赞
rzwitserloot
7/18/2020
BigDecimal 应该总是用于赚钱吗?诺诺。通常,或应该使用,表示通常考虑用于交易的最小单位。从Satoshis(BTC)到欧洲美分到美元美分再到日元。BigDecimal 和 int/longs 都不能正确除法。当有理因素的一系列乘法完全发生在内部系统上时,BD变得有用,这是罕见的。int
long
1赞
Patricia Shanahan
7/21/2020
几乎任何测量物理量的处理,如长度和重量。除非所使用的算法条件异常差,否则测量误差将远大于舍入误差。double
评论