Php 我应该使用哪种SQL类型来输入值4.865472349
PHP运行一个正确计算值的脚本。当我回显该值时,结果为4.865472349 然后使用一个简单的更新脚本将值输入到我的数据库中Php 我应该使用哪种SQL类型来输入值4.865472349,php,mysql,sql,types,Php,Mysql,Sql,Types,PHP运行一个正确计算值的脚本。当我回显该值时,结果为4.865472349 然后使用一个简单的更新脚本将值输入到我的数据库中 $query = "UPDATE members SET rating = $r WHERE username = '$username'"; mysql_query($query); 当我这样做时,输入数据库的值是5 如果我直接用4.865472349替换前面公式中的$r,它将产生相同的结果 显然这是因为我的SQL类型被设置为“整数” 但是我不
$query = "UPDATE members
SET rating = $r
WHERE username = '$username'";
mysql_query($query);
当我这样做时,输入数据库的值是5
如果我直接用4.865472349替换前面公式中的$r,它将产生相同的结果
显然这是因为我的SQL类型被设置为“整数”
但是我不确定要把它改成什么来解决这个问题。有什么帮助吗?您可能应该使用。它与PHP中的浮点数(在大多数配置中)具有相同的精度和范围
要使用PHPMyAdmin切换类型,请执行以下操作:
编辑数据库中的列类型,使其能够容纳多个整数
ALTER TABLE members
CHANGE rating rating float(10,9);
根据要存储的数字,可以使用float、double或decimal。我想说浮动已经足够好了 如果您想要与4.865472349相同的精度,可以使用十进制(10,9) 参考文献 例如,十进制(18,9)列的小数点两侧各有九位数字,因此整数部分和小数部分各需要4个字节。十进制(20,6)列有14个整数和6个小数位数。整数位数要求其中9位为4字节,其余5位为3字节。六个小数位数需要3个字节
假设您使用的是MySql您使用的是什么数据库?您允许的值范围是多少?您需要什么精度?添加了mysql标记,因为有
mysql\u query
行。我会使用decimal,这样以后就不会出现浮点算术的问题了。+1。只要您不关心十进制近似,就可以使用DOUBLE。如果您需要精确的十进制值,没有近似值,并且最大值的范围是有界的,因此您可以在给定的比例和精度范围内生存,那么decimal
是一种方法。在phpMyAdministration中执行此操作的任何建议请选择数据库并找到sql列,然后复制、粘贴和执行。也有一种gui方法来实现这一点。可能类似于编辑表格,并将列类型从INT更改为float(10,9)+1。如果您有一个有界范围(最大值),并且可以在指定的范围内保持比例和精度,则十进制类型是一种选择。否则,DOUBLE将提供更大的范围,但在存储和检索十进制值时存在一些不精确性(近似值)。