Javascript 提交值至小数点后2位
我的脚本中的所有内容都非常完美,除了我最后的“if”语句,它无法执行,我无法用我的生命来理解它!我知道我在某个地方出错了,但就是不知道为什么,我是JavaScript新手 以下是我在最后一句话中试图实现的目标:- 如果“AgeGrade”变量与“Expression”变量匹配,则接受该值并将输入的值更改为2个小数点。例如,如果输入5.999,则更改为5.99 代码如下:-Javascript 提交值至小数点后2位,javascript,Javascript,我的脚本中的所有内容都非常完美,除了我最后的“if”语句,它无法执行,我无法用我的生命来理解它!我知道我在某个地方出错了,但就是不知道为什么,我是JavaScript新手 以下是我在最后一句话中试图实现的目标:- 如果“AgeGrade”变量与“Expression”变量匹配,则接受该值并将输入的值更改为2个小数点。例如,如果输入5.999,则更改为5.99 代码如下:- function agegrade() { var AgeGrade = document.submitrunne
function agegrade() {
var AgeGrade = document.submitrunnertime.AgeGrade.value;
var expression = /^[0-9]*\.?[0-9]*$/
if (AgeGrade == null || AgeGrade == "") {
document.submitrunnertime.AgeGrade.value = "-1";
return true;
} else if (AgeGrade != document.submitrunnertime.AgeGrade.value.match(expression)) {
alert("Error - Need a number!");
return false;
} else if (AgeGrade == document.submitrunnertime.AgeGrade.value.match(expression)) {
document.submitrunnertime.AgeGrade.value = AgeGrade.toFixed(2);
return true;
} else
return false;
}
任何帮助都将不胜感激。您可以试试这个。我在许多Javascript中都使用了它来进行舍入
document.submitrunnertime.AgeGrade.value = Math.round(AgeGrade * 100) / 100;
最后一个
if
语句可能会失败,并出现如下错误:AgeGrade.toFixed不是函数
你怎么能解决这个问题
您使用的.value()
方法返回一个字符串。但是,方法.toFixed(
)仅适用于数字()。在调用它之前,请尝试将AgeGrade
转换为float:
document.submitrunnertime.AgeGrade.value = parseFloat(AgeGrade).toFixed(2);
执行哪条路径?您应该将正则表达式更改为/^[0-9]*(\.[0-9]*)?$/根据他的问题,问题的可能重复之处在于if
语句,而不是四舍五入。感谢您的输入。虽然这让我现在可以提交一个值,但它是将数字四舍五入,而不是将数字精确地去除到小数点后2位-有什么想法吗?如前所述,请看看这个答案:在您的特定情况下,它转换为:Math.floor(parseFloat(AgeGrade)*100)/100