用两个小数解析浮点,
parse float with two decimals,
这是输入
<input type="text" name="price" class="solo-numeros">
具有此功能的
$(".solo-numeros").blur(function() {
var numb = parseFloat($(this).val().replace(/'D/g,"")).toFixed(2);
$(this).val(numb);
});
我尝试将输入的结果更改为带有两位小数的浮动
所以我试试
555.61
但在模糊时,值变为
55561.00
为什么????
这是因为要删除非数字字符('D
(,例如句点。因此"55.61"
变为"5561"
,然后将其转换为浮点的两个十进制字符串表示,因此"5561.00"
参考文献:
- JavaScript正则表达式
String.replace()
Number.toFixed()
$(this).val().replace(/'D/g,"")
这部分替换了数字555.61
中的小数点.
,使其成为值为55561
的整数,然后toFixed()
使其成为55561.00
。变通办法可能是使用
$(this).val().replace(/[^0-9'.]/g,"")
尝试将计算麻木的行替换为以下行:
var numb = _toPrecision( parseFloat( $(this).val() ) , 2 );
使用此功能:
var _toPrecision = function( number , precision ){
var prec = Math.pow( 10 , precision );
return Math.round( number * prec ) / prec;
}
'D
替换任何非数字字符。.
不是数字字符,因此它将被删除。请改用[^'d'.]
,意思是"任何不是数字的字符,而不是字符.
var numb = parseFloat($(this).val().replace(/[^'d'.]/g, "")).toFixed(2);
$(this).val(numb);
输出:
parseFloat(String('123.456').replace(/[^'d'.]/g, "")).toFixed(2);
//123.46
替换字符串中的所有非数字,该字符串将从"555.61"变为"55561"(句点将被regex replace调用替换(。这反过来又通过toFixed((方法计算为55561.00。
尝试解析正则表达式中的可选句点,例如(未测试的(
var numb=parseFloat($(this).val().replace(/'D('.'D+)?/g,"")).toFixed(2);
相关文章:
- JQuery合并了keyup和focusout两个函数
- 如何使用 node.js 比较两个 json 数组
- 为复选框javascript指定两个值
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 单击时切换两个图像
- 我可以'我似乎不知道如何修复javascript中的两个lint.有人能帮我理解吗
- 基于两个条件退出While循环
- 如何在这里将两个值最低的数字相加
- 组合两个javascript函数
- 在数字字符串的最后两个数字上加上小数
- 对于大的数字,在这个本地化函数上强制使用两个小数
- 如何使输入只接受两个小数,并且最多有10位数字
- Javascript-只获取所选元素的两个小数
- 我想比较两个小数,看哪个更大
- 用两个小数解析浮点,
- 在不使用. tofixed()的情况下用两个小数格式化float
- 两个整数,三个小数的正则表达式(XX.XXX)
- 如何四舍五入,如果值是两个小数和格式为3个小数在javascript
- 用javascript将数字转换为逗号分隔的格式,其中包含两个小数
- js设置y轴标签格式以显示两个小数