mySQL:我需要在int列中输入一个小数

时间:2012-02-09 19:39:37

标签: php mysql sql integer decimal

我有一个当前结构的表格如下:

enter image description here

目前填充如下:

enter image description here

为产品值存储的数据是十进制值 并且一旦将数字插入数据库,它们就会被截断。

我尝试按如下方式更改表格结构:

enter image description here

然而,这只会导致以下情况:

enter image description here

正如您所看到的,如果不存在,则所有值都附加.00,但我想这样做 存储所有这些值,没有小数位。除产品价值外。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

麻烦的是你将十进制(浮点数/双精度)转换为整数,因此简单地截断该值(十进制值被截断)。

如果你真的不想在数据库中使用浮点数(十进制值),你可以使用这个hack work around work:

在插入之前将数字乘以100,然后在使用数据时务必将其除以100。这将允许您在使用整数存储时保持2个小数点。

因此,2.4将被存储为240,53将被存储为5300,20.74将被存储为2074等...

我想指出,这不是一个理想的解决方案,而是一个黑客攻击。

我强烈推荐其他用户在评论中建议的内容:存储小数值(如您所有)并在呈现时格式化。

---另外---

您真正的问题似乎与数据库的设置方式有关。

每个值都应该有自己的字段,因为每个产品都会重复这些字段。