Html 四舍五入保留两位小数:
Html:
<input type="number" step=".01" id="amount" name="amount" maxlength="100" value="<%=amount%>" onblur="formatDecimal(event)"/>
JS:
<script>
function formatDecimal(e) {
var val = e.currentTarget.value;
e.currentTarget.value = toDecimal2(val);
}
function toDecimal2(x) {
k = 1/(10**(2+1));
var f = Math.round(x*100+ k)/100;
var s = f.toString();
var rs = s.indexOf('.');
if (rs < 0) {
rs = s.length;
s += '.';
}
while (s.length <= rs + 2) {
s += '0';
}
return s;
</script>
注:Math.round()四舍五入时存在奇进偶舍的情况,即当舍入位前面一位是奇数时,就进,为偶数时,就舍。为了解决这个bug可以添加一个需要保留小数位后一位的小数来fixMath.round()四舍五入的bug。比如:保留两位小数是可以添加一个k = 1/(10**(2+1)),即0.001。