我的问题是,当它在1-9之前时,一切都很好,最多两位小数,但是如果数字是第10位,那么我的脚本只显示一位小数。
200.19,5000.42,12.98<<没问题但是如果输出应该是123.10,它将显示123.1
这是我的代码:
jQuery(document).ready(function() {
function ReplaceNumberWithCommas(yourNumber) {
//Seperates the components of the number
var n= yourNumber.toString().split(".");
//Comma-fies the first part
n[0] = n[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
//Combines the two sections
return n.join(".");
}
function loanCalc() {
//Get the parameter from the form
var rate=jQuery('#start_rate').val();
var priceValue=jQuery('#input_1_2').val();
console.log("price value before"+priceValue);
if(priceValue.indexOf('£') == 0) {
var strEnd=jQuery('#input_1_2').val().indexOf(',') - 1;
priceValue=parseInt(priceValue.substr(1,priceValue.strEnd))*1000;
}else{
priceValue=priceValue;
}
var princ = parseInt(priceValue);
var term = parseInt(jQuery('#input_1_3').val());
var intr = rate / 1200;
console.log("price"+priceValue+" term"+term+" rate"+rate);
var calculation = princ * intr / (1 - (Math.pow(1/(1 + intr), term)));
console.log("paymenet"+calculation);
var rePayment= calculation*term;
var costOfCredit=princ-rePayment;
//set the value
jQuery('#figure').html('£'+ ReplaceNumberWithCommas(calculation.toFixed(2)));
jQuery('#rate').html(rate+"%");
jQuery('#total').html('£' +
ReplaceNumberWithCommas(rePayment.toFixed(2)));
jQuery('#credit').html('£' + ReplaceNumberWithCommas(
Math.abs(costOfCredit.toFixed(2 ))));
正如你可能猜到的那样,我正在显示3个字段,计算,这是一个百分比,' rePayment'和' costOfCredit'。奇怪的是' rePayment'工作正常,显示第二个小数位,即使它的第10个/以零结束也没有问题。
所以我的问题是,你们可以帮助我找到我的问题是获得显示的第二个小数位吗?
答案 0 :(得分:0)
当您致电Math.abs()
时,它会将小数点后的2位数字符串转换回数字,这会丢失尾随的零。您应首先调用Math.abs()
,然后在此处调用toFixed()
以添加尾随零。
jQuery('#credit').html('£' +
ReplaceNumberWithCommas(Math.abs(costOfCredit).toFixed(2)));