如何在PHP中使用MySQL Decimal数据类型?

时间:2012-02-06 14:33:55

标签: php mysql arbitrary-precision

希望只是一个简单的问题。我的数据库中有一个DECIMAL列。该值是一个非常小的小数部分 - 对所有行的此值求和将等于1。

现在我想在我的php应用程序中使用此值,显示它,对其执行计算并将其保存回数据库。

由于php只有integerfloat类型,在php中使用该值的最佳方法是什么,以免在计算或显示中失去任何精度?

  • 将值保留为字符串并使用BC Math进行计算
  • 将数字转换为float - 我知道php浮点数对于一个好的数字是精确的(取决于操作系统)
  • 使用记住指数
  • 的函数将值转换为整数
  • 别的什么?

由于

1 个答案:

答案 0 :(得分:0)

你应该float不要失去计算的精确度,并使用number_format输出来显示......

备注:
如果您希望在第二个数字之后切割尾数或进行某种舍入,这实际上取决于您的需求以及您希望如何处理输出。

使用带有比例2的BC Math,例如2.10/1.10使用时产生1.90 number_format(2.10/1.10, 2)会产生1.91(将结果四舍五入为SELECT CAST(2.10/1.10 as DECIMAL(10,2))

<强>更新即可。 如评论中所述,可能存在计算失败的情况。 在MySQL本身进行任意精度计算可能会更好,这样你就可以确保在数学运算期间没有任何东西被释放。