Javascript捐赠计算器 - 计算问题

时间:2018-04-04 23:53:30

标签: javascript jquery math

我有一点与我的JavaScript捐赠计算器的一个问题,它运作良好,但是当我计算的50百分比,它出现为$ 12.5和我想它是$ 12.50,这也影响$ 7.50之显示为7.5。

我已经包含了以下代码

<script>
    $(function () {
        $(document).on('change', '#selectUserNames', function () {
            var selectedVal = $(this).val();
            var userClaims = @Html.Raw(Json.Serialize(Model.GetUserClaims(selectedVal))); //////////PASSING VALUE HERE

            if (selectedVal == 'ABC@GMAIL.COM') {
                var html = '<option selected disabled>Select Claim:</option>';
                for (var i = 1; i < userClaims.length; ++i) {
                    html = html + '<option>' + userClaims[i] + '</option>';
                }
                $('#selectAuthPolicy').html(html);
            }
        })
    })
</script>

这里也是一个代码更易读的pastebin: goo.gl/UQZrik

最后,我尝试将变量cleanCostAfterCredit设置为12.50而不是12.5。此外,如果有人能给我任何提高我的代码效率的技巧,我会非常感激。请放在建设性的批评上:)

2 个答案:

答案 0 :(得分:0)

使用.toFixed(2)将返回表示2位小数的字符串。

var result = 12.5;
var resultWithDecimals = result.toFixed(2);

答案 1 :(得分:0)

toFixed方法格式化浮点数,但不具备文化意识。

donationAmount.toFixed(2)

如果您希望了解文化,请使用toLocaleString

&#13;
&#13;
console.log(
    // This uses the default locale
    (12.5).toLocaleString(undefined, {
        style: 'currency',
        currency: 'USD',
        minimumFractionDigits: 2
    })
);

console.log(
    (1).toLocaleString('pt-br', {
        style: 'currency',
        currency: 'USD',
        minimumFractionDigits: 2
    })
);
&#13;
&#13;
&#13;