【发布时间】:2018-05-01 07:39:23
【问题描述】:
我在 PHP 中有一个函数,它将一个数字插入到文本输入中并将其转换为浮点数,小数用逗号分隔。
之后,号码就被注册到数据库中了。
现在,我需要用 JavaScript(或 jQuery)做一些东西,做同样的转换。
$num = $_POST['precoItem'];//get the input value
$precoAd = tofloat($num);//convert it to float
$precoFinal = number_format($precoAd, 2, ',', '');//remove any 'dots' or 'spaces'
PHP函数toFloat()就是这个:
function tofloat($num) {
$dotPos = strrpos($num, '.');
$commaPos = strrpos($num, ',');
$sep = (($dotPos > $commaPos) && $dotPos) ? $dotPos :
((($commaPos > $dotPos) && $commaPos) ? $commaPos : false);
if (!$sep) {
return floatval(preg_replace("/[^0-9]/", "", $num));
}
return floatval(
preg_replace("/[^0-9]/", "", substr($num, 0, $sep)) . ',' .
preg_replace("/[^0-9]/", "", substr($num, $sep+1, strlen($num)))
);
}
例如,最后的数字不会有点或空格,只有逗号:例如:45354,85 (45.354,85)
我的JS知识有限。我尝试使用类似的东西:
var n = +$precoFinal;
var n = Number($precoFinal);
var n = parseFloat($precoFinal);
为什么人们这么喜欢投反对票……你真的要说我的问题没有经过任何研究吗?来吗?
【问题讨论】:
-
你试过用JS写这样的函数吗?
-
parseFloat("1234.45")?! -
strrpos = indexOf, floatval = parseFloat, preg_replace = replace, substr = substr, strlen = length
-
45354,85 不是 JS 中的有效数字。您还需要用点替换逗号
标签: javascript jquery type-conversion