2012-03-23 113 views
0

我只是想询问是否有当用户按下储存按钮,这个值可以存储与一个逗号和小数点,如10,000.35PHP逗号和小数点格式

为数字的PHP/MySQL的数据类型,它应该存储在一个MySQL表中,系统可以检索它也被处理为数字10000.35

感谢您的任何帮助!

+3

只需在表示层解决它,不要改变它的存储方式。 – Tadeck 2012-03-23 02:23:57

+2

使用['number_format()'](http://www.php.net/manual/en/function.number-format.php)显示您从数据库中获取的值 – 2012-03-23 02:24:00

+0

感谢大家的有用答复。 :) – MiD 2012-03-23 02:36:13

回答

2

这将是一个CHAR/string数据类型。

数字值没有格式。它们只包含数值。逗号与数字计算无关。使用例如number_format格式化输出上的值。这是逗号相关的唯一时间,它不需要存储。

1

在MySQL中存储没有逗号的数字,只需在PHP中显示数字时将其格式化即可。如果你在数学上做数学计算,那么在PHP中不用逗号就可以更容易地保留数字 - 只有在显示数据时才使用逗号!

0

最好将它存储在你的MySQL数据库中而不是的逗号,然后用PHP的number_format用逗号来显示它。

这样做的MySQL数据类型是DECIMAL。 DECIMAL为您提供固定的小数位而不会出现浮点类型固有的精度错误。 (即123.45而不是123.4499999999999999)

+0

123.45为DECIMAL,123.4499999999999999为FLOAT,是否正确? – MiD 2012-03-23 02:29:39

+0

是的,我相信。 – Zed 2012-03-23 02:42:35

1

如果您打算存储数值,最好将所有格式都保留在其外面。

例如,如果您需要本地化显示器以使10,000.05需要为10.000,05,该怎么办?你需要做很多工作。

您应该将该值存储在数据库中作为10000.05,并使用number_format($myValue,2,'.',',');在时间显示值。这将允许您将文字更改为变量或常量,如果您需要进行本地化。它还将允许您配置您希望显示的小数位数。

下面是number_format()

0

的PHP文档你有2个选择,使用MySQL直接或使用PHP格式化....见下面的例子

MySQL的直接解决方案

SELECT FORMAT(number, 2) as formatNumber FROM table ; 

PHP解决方案

number_format($number,2,'.',','); 

谢谢 :)