我试图将input
中的小数存储在Mysql十进制(10,2)行中。但是当我在输入中输入37.50
时,Mysql只存储37.00
它似乎忽略了点之后的所有内容。我如何存储小数?
此输入
<input class='form-control formBlock' name='payrate' value='' step="0.01" type='number' placeholder="Pay Rate..." required>
到目前为止,我试过浮动:
$payrate=floatval($_POST['payrate']);
答案 0 :(得分:1)
<罢工>目前还不清楚你在问什么。 (有问题吗?还是只是作为状态报告?)
在数字上下文中......
MySQL解释了一个&#34; dot&#34;数字文字中的字符作为小数点。
MySQL解释一个&#34;逗号&#34;字符为无效。 MySQL从左到右读取值,直到它遇到无效字符,并将其读取的任何值作为值。
作为演示,请考虑
SELECT '123,456.78' + 0 --> 123
SELECT '4t2' + 0 --> 4
如果我们需要将数值传递给包含逗号的MySQL,并且我们希望MySQL忽略逗号,那么我们可以删除逗号
SELECT REPLACE('123,456.78',',','') + 0 --> 123456.78
如果我们想将逗号视为小数分隔符,我们可以用点字符
替换它SELECT REPLACE('456,78',',','.') + 0 --> 456.78
当然,在将值传递给MySQL之前,我们还可以在客户端中进行字符串操作和清理。
不确定是否有任何一个回答了您提出的问题。有问题吗?