使用 BigDecimal 作为初学者而不是 Double?

Using BigDecimal as a beginner instead of Double?

我目前正在学习 Java 并且偶然发现了“BigDecimal”的用法。据我所知,“BigDecimal”更精确,因此建议使用它而不是普通的 Double。

我的问题是:我应该始终使用“BigDecimal”而不是 Double,因为它总是更好还是有一些缺点?初学者切换到“BigDecimal”是否值得,还是仅在您对 Java 有更多经验时才推荐?

double 应在处理不需要完美精度的实数时使用。以下是一些常见示例:

  • 计算机图形,有几个原因:很少需要精确度,因为很少有显示器的像素数超过四位数;此外,大多数三角函数仅适用于 floatdouble,而三角函数对于大多数图形工作来说都是必不可少的
  • 统计分析;像平均值和标准差这样的指标通常预计最多比单个数据点更精确
  • 随机性(例如Random.nextDouble()),其中点不是特定位数;优先级是某个特定分布的实数
  • 机器学习,其中正在学习乘法因子并且不需要特定的小数精度

对于像金钱这样的价值观,在任何时候使用 double 都是一个糟糕的时刻。 BigDecimal 通常应该用于金钱和其他任何您关心特定数量的 十进制 数字的地方,但它的性能较差并且提供的数学运算较少。