Mysql,最后一个小数零在产品价格的Float数据类型中消失

时间:2014-09-13 10:27:10

标签: php mysql types decimal

所以我的PhpMyAdmin中有一个mysql数据库,它存储了大量产品列表的所有信息。名称,描述,图像文件名称和价格。所以在这种情况下,有些产品的价格有十进制数,所以我将productprice的数据类型从int设置为float。但是有些产品的成本是例如199.90,因为我在它收到的表格中输入了这个值,并按照我的要求将其存储为199.90。但是当我在网站上输出我用php做的价格时,它只输出数字199.9,因为你可以看到最后的零缺失。即使这两个数字具有相同的值。 199.9看起来不如199.90那么吸引人,我希望这是可以理解的。那么,我该怎么办?

1 个答案:

答案 0 :(得分:0)

您可以在PHP中使用数字格式:

  $Text = number_format($Amount,$Decimals,$DecimalSeperator,$ThousandsSeperator);

但请记住,浮动并不总是存储价格的最佳类型。通常价格以整数存储在美分中。总和100 - 50的答案是明确的50,但1.00 - 0.50的答案可能是0.499999999999999。这只是一个简单的例子,计算更复杂会变得更糟。浮动是可以的,只要存储价格是你唯一做的事情。另见:Best data type to store money values in MySQL