将输入数转换为Mysql decimal

时间:2017-04-02 03:43:39

标签: mysql input decimal number-formatting

我试图将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']);

1 个答案:

答案 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之前,我们还可以在客户端中进行字符串操作和清理。

不确定是否有任何一个回答了您提出的问题。有问题吗?