将值提交到2个小数位

时间:2015-01-26 10:59:29

标签: javascript

我脚本中的所有内容都完美无缺,除了我的上一个" if"声明,它没有执行,我无法弄清楚我的生活!我知道我在某个地方有错误,但我不知道为什么,我是JavaScript的新手。

这是我在最后一句话中想要达到的目标: -

如果" AgeGrade"变量匹配"表达式"变量然后接受值并将更改值输入到2个小数点。例如。如果输入5.999,则更改为5.99

以下是代码: -

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;
}

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

你可以试试这个。我已经在许多javascripts中使用它进行四舍五入

document.submitrunnertime.AgeGrade.value = Math.round(AgeGrade * 100) / 100;

答案 1 :(得分:0)

您的上一个if语句可能会失败,并显示错误:AgeGrade.toFixed is not a function

你怎么解决这个问题?

您使用的.value()方法会返回一个字符串。但是,方法.toFixed()仅适用于数字(MDN doc)。在调用它之前,请尝试将AgeGrade转换为float:

document.submitrunnertime.AgeGrade.value = parseFloat(AgeGrade).toFixed(2);