2014-10-10 68 views
0

所以我有一组数字,比如这个:JQuery的toFixed()不能正确显示

<select name="amount" id="amount" class="form-control"> 
     <option selected="selected" disabled="disabled">Donation Amount</option> 
     <option value="500">$5.00</option> 
     <option value="1000">$10.00</option> 
     <option value="1500">$15.00</option> 
     <option value="2000">$20.00</option> 
     <option value="2500">$25.00</option> 
     <option value="3000">$30.00</option> 
     <option value="3500">$35.00</option> 
     <option value="4000">$40.00</option> 
     <option value="4500">$45.00</option> 
     <option value="5000">$50.00</option> 
     <option value="5500">$55.00</option> 
     <option value="6000">$60.00</option> 
     <option value="6500">$65.00</option> 
     <option value="7000">$70.00</option> 
     <option value="7500">$75.00</option> 
     <option value="8000">$80.00</option> 
     <option value="8500">$85.00</option> 
     <option value="9000">$90.00</option> 
     <option value="9500">$95.00</option> 
     <option value="10000">$100.00</option> 
</select> 

每到这个变化我有一个运行一些javascript:

<script type="text/javascript"> 
    $("#amount").change(function(){ 
     var amount = parseInt($("#amount option:selected").val()); 
     var amount = amount.toFixed(2); 
     $(".amountShow").text('$'+amount); 
    }); 
</script> 

现在几乎作品。除了一切的toFixed(2)部分。假设我们选择10.00。值是1000,我想显示10.00。它反而显示如:1000.00。

我还需要做什么?我将文本转换为整数,然后将其固定为两位小数。

+1

尝试'无功量=(金额/ 100).toFixed(2);' – Cheery 2014-10-10 00:27:09

+0

或者,你可以删除多余的零的从价值。 – imtheman 2014-10-10 00:28:17

+1

[* toFixed *](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.prototype.tofixed)是一个内置的ECMAScript函数,它不是jQuery。 – RobG 2014-10-10 00:58:31

回答

0

你必须100像选项的值来划分:http://jsfiddle.net/csdtesting/14rh32ou/

$("#amount").change(function() { 
    var amount = parseInt($("#amount option:selected").val())/100; 
    var amount = amount.toFixed(2) 
    $(".amountShow").text('$' + amount); 

});