MySQL 中的 DOUBLE 与 DECIMAL:重新评估转换参数
通常建议不要在 MySQL 中使用 DOUBLE 进行财务数据存储,因为潜在的精度误差。然而,对于具有 783 个 DOUBLE 列的现有系统,考虑转换为 DECIMAL 需要仔细评估。
在给定的场景中,系统将货币值存储在 DOUBLE 列中,但使用 BigDecimal 在 Java 中执行所有计算。 MySQL仅用于结果存储。由于没有实际的数据库计算,所以 DOUBLE 的精度不足并不是问题。
而且,该系统已经运行了六年,没有任何与精度相关的错误。这表明,对于最多 8 位十进制数字的财务值,DOUBLE 的 15 位精度就足够了。
此外,执行的特定数据库操作(SUM 和复杂乘法)不会导致第二个精度损失小数位。这表明与 DOUBLE 相关的舍入问题不会影响存储数据的准确性。
因此,在这种特定场景中,计算在 MySQL 外部完成且精度不是一个重要问题,因此可能不会出现将 DOUBLE 列转换为 DECIMAL 的一个令人信服的理由。但需要注意的是,如果将来计划进行任何 SQL 算术运算,则应重新考虑转换为 DECIMAL。
以上是当外部执行计算时,是否应该在 MySQL 中将财务数据的 DOUBLE 转换为 DECIMAL?的详细内容。更多信息请关注PHP中文网其他相关文章!