Php 将浮点格式插入MySQL十进制(6,5)字段
我需要在PHP中格式化一个浮点数,这样它就可以插入到decimal(6,5)类型的表中的列中 所以 20将使格式化程序变为20.00000 20.5将被格式化为20.50000Php 将浮点格式插入MySQL十进制(6,5)字段,php,mysql,Php,Mysql,我需要在PHP中格式化一个浮点数,这样它就可以插入到decimal(6,5)类型的表中的列中 所以 20将使格式化程序变为20.00000 20.5将被格式化为20.50000 如何在PHP中实现这一点?要格式化数字,只需使用 <?php echo number_format(20, 5); //returns 20.00000 echo number_format(20.5, 5); //returns 20.50000 ?> 但插入MySQL数据库时不需要这样做。为了避免浮
如何在PHP中实现这一点?要格式化数字,只需使用
<?php
echo number_format(20, 5); //returns 20.00000
echo number_format(20.5, 5); //returns 20.50000
?>
但插入MySQL数据库时不需要这样做。为了避免浮点固有的精度错误,
先将其转换为十进制(9,2),然后再转换为十进制(6,5)。您根本不需要对其进行格式化…仅供参考,您不能将
20
存储在decimal(6,5)
类型的列中--SQL错误(1264):超出范围值
可能需要的是decimal(11,5)
小心使用number\u格式,正如这里给出的,它可能会插入一个千分之一的分隔符!查看第二个参数,它是十进制的:stringnumber\u格式(float$number[,int$decimals=0])
我错了吗?@bart是的,非常小心-我只是在这个错误中运行,当数据库中出现不同的数字时。。。