2012-04-23 48 views
4

我正在用PHP和MySQL构建一种会计系统。我的数据库有​​列的货币,对于使用货币操作的所有其他值(如应用的百分比),也有DECIMAL。我以前从未编程过这样的东西,所以我不确定我做的是正确的事情。会计系统 - MySQL和PHP精度

我是否在数据库中使用了正确的精度级别?

在PHP端:

我应该使用BC数学函数在以后可能存储在数据库中的任何值?

我还必须格式化货币值,作为小数点,而.作为千位分隔符。我知道number_format,最近发现money_format,但手册说这两个操作与浮游物。

我可以使用number_formatmoney_format获取将显示或导出为CSV或Excel的值吗?

+0

我可能是错的,但通常金融系统至少会使用3个小数位数('DECIMAL(10,3)').PHP本身对浮点数并不是很好;最好的做法可能是做x100并只使用整数,可选地使用BC Math。 – 2012-04-23 03:12:41

+0

只是一个快速注释 - 通常不会。一个最好的办法用金钱工作时使用花车 – 2012-04-23 03:23:18

+3

@pyrate我知道,这就是为什么我问的问题 – bfavaretto 2012-04-23 03:51:33

回答

0

您可以使用number_format()将内容显示或导出为csv/excel。但请注意,使用带逗号(,)的小数点分隔符的数字格式()以csv/excel格式导出时,必须使用双引号(“)。 Just like "2,22.00".

+0

谢谢,我不知道。无论如何,我想我会以美国格式导出这些值,并且本地化的Excel副本应该会自动检测,并以当前语言环境的正确格式显示值。 – bfavaretto 2012-04-25 01:56:05