JavaScript 实现十进制数值验证和四舍五入





1.00/5 (1投票)
大家好,我创建了一个 JavaScript 函数,可以验证任何文本框中的十进制值。通过这个 JavaScript,我们可以绑定
大家好,
我创建了一个 JavaScript 函数,可以验证任何文本框中的十进制值。
通过这个 JavaScript,我们可以限制用户在文本框中只能输入数字。当用户输入任何十进制值时,JavaScript 会将其四舍五入到小数点后两位。
以下是这个 JavaScript 代码:
<script language="JavaScript" type="text/javascript">
function round_decimals() {
var val = document.getElementById('<%=txtamount.ClientID %>').value;
var result1 = parseFloat(val) * Math.pow(10, 2);
var result2 = Math.round(result1);
var result3 = result2 / Math.pow(10, 2);
document.getElementById('<%=txtamount.ClientID %>').value = pad_with_zeros(result3, 2);
}
function pad_with_zeros(rounded_value, decimal_places) {
// 将数字转换为字符串
var value_string = rounded_value.toString()
// 查找小数点
var decimal_location = value_string.indexOf(".")
// 是否存在小数点?
if (decimal_location == -1) {
// 如果不存在,则用 0 填充所有小数位
decimal_part_length = 0
// 如果 decimal_places 大于零,则添加一个小数点
value_string += decimal_places > 0 ? "." : ""
}
else {
// 如果存在,则仅用 0 填充额外的十进制位
decimal_part_length = value_string.length - decimal_location - 1
}
// 计算需要用 0 填充的十进制位数
var pad_total = decimal_places - decimal_part_length
if (pad_total > 0) {
// 用 0 填充字符串
for (var counter = 1; counter <= pad_total; counter++)
value_string += "0"
}
return value_string
}
//-->
</script>
现在,以下是在文本框中放置它的 ASPX 页面:
<asp:TextBox ID="txtamount" onblur="javascript:round_decimals()" runat="server"></asp:TextBox>
我已经在 IE7/IE8/FF/Safari/Google Chrome 中测试过这个 JavaScript 代码。