2012-08-11 121 views
1

我已经这样做了计算:mysql,如何将长整型数字保存到longtext字段中?

$number = round(count($exc)/ count($grades),2,PHP_ROUND_HALF_UP); 

当保存,我必须将其保存到现有的表,它是一个LONGTEXT类型的字段。数字得到保存,但变得很长,像0.200000000000000011102230246251565404236316680908203125 我认为这可能会导致额外的数据库存储。当我查询这些数字时,它们仍然是2数字。所以,这是一个额外的转换工作。我想了解如何将这些数字保存为舍入数字?

+2

为什么要将**数字**作为** longtext **字段存储? – 2012-08-11 08:05:57

+0

你为什么使用文本类型来存储数字数据? MySQL有许多数字数据类型(INT,NUMERIC,FLOAT等),为什么不使用其中之一?对你存储的数据使用错误的类型最好是盗用你的灵活性,最坏的情况会导致SQL操作的结果不正确。如果您尝试对它们进行排序,您将无法按照预期顺序返回项目,例如 – GordonM 2012-08-11 08:06:09

+0

,因为我必须将其保存到现有的表格中,该表格不适合我重新设计。 – Jenny 2012-08-11 08:06:48

回答

1

您可以使用PHP sprintf函数加上格式说明像这样:

$number = sprintf("%.3f", round(count($exc)/ count($grades),2,PHP_ROUND_HALF_UP)); 

如果您需要有关看一看这里http://it2.php.net/manual/en/function.sprintf.php sprintf的PHP文件的详细信息。

+1

完美!感谢神奇的sprintf! – Jenny 2012-08-11 08:19:13

相关问题