6

PHP 运行一个正确计算值的脚本。当我回显该值时,它显示为 4.865472349

然后使用一个简单的更新脚本将值输入到我的数据库中。

$query = "UPDATE members
     SET rating = $r 
     WHERE username = '$username'";
mysql_query($query);

当我这样做时,输入到数据库中的值为 5。

如果我将前面公式中的 $r 直接替换为 4.865472349,它会产生相同的结果。

显然这是因为我的 SQL 类型设置为“整数”

但我不知道要改成什么来解决这个问题。有什么帮助吗?

4

4 回答 4

3

如果您想要与 4.865472349 相同的精度,可以使用 DECIMAL(10,9)

参考

例如,DECIMAL(18,9) 列的小数点两侧各有 9 位,因此整数部分和小数部分各需要 4 个字节。DECIMAL(20,6) 列有 14 个整数位和 6 个小数位。整数位中的九位需要四个字节,其余五位需要 3 个字节。六个小数位需要 3 个字节。

假设您使用的是 MySql

于 2012-08-29T16:44:46.640 回答
3

您可能应该使用DOUBLE。它与 PHP 中的浮点数具有相同的精度和范围(在大多数配置中)。

使用 PHPMyAdmin 切换类型:

  1. 点击表格
  2. 点击结构
  3. 点击评分旁边的更改(铅笔图标)
  4. 在“类型”下选择“双”选项
  5. 点击保存
于 2012-08-29T16:43:08.490 回答
0

编辑数据库中的列类型,使其能够容纳的不仅仅是一个整数。

ALTER TABLE members
CHANGE rating rating float(10,9); 
于 2012-08-29T16:44:16.500 回答
0

您可以使用浮点数、双精度数或十进制数,具体取决于您要存储的数字。我会说浮动已经足够好了。

于 2012-08-29T16:44:41.883 回答