数字文本框 - 格式

时间:2014-05-09 12:28:28

标签: javascript jquery

我有一个禁用的文本框,显示计算的百分比。 我希望格式化此文本框以始终显示一个小数位,即使该数字是整数。

我觉得这应该很简单,但出于某种原因,我无法弄清楚这一点。

有什么建议吗?

<div class="labelReallySmall">
                @Html.Label("%F", null, new { @class = "req" })
                @Html.TextBox("PFat305", null, new { disabled = true })
                     <script>
                         $(document).ready(function () {
                             $("#305Fat").change(function () {
                                 var a = parseInt($(this).val());
                                 var b = parseInt($("#Milk305").val());
                                 var c = (a*100)/b ;
                                 $("#PFat305").val(c);
                             });
                         });
                </script>
            </div>

提前致谢,Mark

4 个答案:

答案 0 :(得分:2)

尝试.toFixed(n) - 其中n - 是小数位数。

    alert((10.82).toFixed(1));

答案 1 :(得分:1)

检查以下代码。希望它会对你有所帮助。

var percent = "35.5%"

var parsePercent = parseFloat(percent);
if (parsePercent == null)
alert("error");
else {
var decimal = parsePercent / 100
alert(decimal);
}

答案 2 :(得分:1)

您可以使用toFixed-function。

$(document).ready(function () {
    $("#305Fat").change(function () {
        var a = parseFloat($(this).val()),
            b = parseFloat($("#Milk305").val()), c;
        if (b) { //to avoid dividing by null
            c = parseFloat((a*100)/b).toFixed(1);
            $("#PFat305").val(c);
        } else {
            //handle dividing by 0 here
        }                  
    });
});

Heres a working Fiddle进行测试。十进制更改正确,因此如果您的小数错误,可能错误在其他地方

答案 3 :(得分:1)

toFixed是正确的答案。但这是另一种(长期)方式。

var nu = 78.988;
nu = Math.floor(nu * 10)/10;

警报(NU); // 78.9

使用100将是两位小数,1000是3,等等。