2012-03-18 102 views
0

我有了這個代碼 -四捨五入結果的十進制數的jQuery的

$(document).ready(function() { 
    $(function(){ 
$("#result").submit(function(e) { 
    e.preventDefault(); 
    var ele = $("#element").val(), 
    target = $("#target").val(), 
    context = $("#context").val(), 
    border = $("#border").val(), 
    margin = $("#margin").val(), 
    padding = $("#padding").val(); 

console.log(ele, target, context, border, margin, padding); 

var DoubleMargin = parseInt(margin, 10) * 2; 
var DoublePadding = parseInt(padding, 10) * 2; 
var DoubleBorder = parseInt(border, 10) * 2; 


var ActualTarget = parseInt(target, 10) - parseInt(DoubleBorder, 10) - parseInt(DoubleMargin, 10) - parseInt(DoublePadding, 10) * 1; 
var result3 = parseInt(target, 10) - parseInt(DoubleMargin, 10) * 1; 
var MarginResult = parseInt(margin, 10)/parseInt(target, 10) * 100; 
var PaddingResult = parseInt(padding, 10)/parseInt(target, 10) * 100; 
var OriginalResult = parseInt(ActualTarget, 10)/parseInt(context, 10) * 100; 
var BorderResult = parseInt(target, 10) - parseInt(border, 10) * 1; 

//$(".result").append(ele + " " + result + "%"); 
$("<p></p>", { 
    html: ele + " {<br><span>width: " + OriginalResult + "%;" + " /* " + ActualTarget + " (originally " + target + ")/" + context + " */ " + "<br>border: " + border + "px; " + "<br>margin: " + MarginResult + "%; " + "<br>padding: " + PaddingResult+ "%;" + "<br> </span>}" 
}).hide().appendTo("#code-results").fadeIn(); 
    }); 

}); 

}); 

和我想要的結果四捨五入小數點僅有5位。我想我應該用

var num.toFixed(5) 

,但我不能讓它工作

什麼想法?

編輯:感謝您的意見 - 基本上OriginalResult,MarginResult和Padding Result的結果可能會有1.0204081632653061%的結果;我只想要第一個5/6小數點,例如1.020408%。是否有一個「全部」可以應用?

我已經把它掛在的jsfiddle - http://jsfiddle.net/sturobson/xTEKm/37/ :)

+1

確定的數量是多少,以及不是你要調用'toFixed()'時的字符串? num的定義在哪裏? – 2012-03-18 08:02:11

+0

我不知道:S基本上從我得到的百分比結果可能是1.0204081632653061%例如,我需要小數點去5/6地點,如1.020408%。但希望能夠抓住所有數學原理。 :) – 2012-03-18 08:05:46

+0

你顯示了所有這些代碼,但是你不會在任何地方顯示num.toFixed(5)',對於我們在哪裏嘗試使用它也不是很明顯。我們應該如何閱讀你的想法,你試圖使用它?請澄清一下? – jfriend00 2012-03-18 08:07:11

回答

2

因爲我們不知道你正在嘗試使用toFixed(),這裏有一個如何,你可以在你的代碼中使用了一個例子:

var OriginalResult = ((parseInt(ActualTarget, 10)/parseInt(context, 10)) * 100).toFixed(5); 
1

鑑於num是一個百分比,而可能是,如在註釋中描述:1.0204081632653061%它被作爲字符串返回。因此,你需要調用parseFloat(),以獲取浮點數,你叫toFixed()前:

var num = '1.0204081632653061%'; 
var numTruncated = parseFloat(num).toFixed(5); 

JS Fiddle demo;

參考文獻:

+0

我會在哪裏將它放在我的代碼中?我只是剪切和粘貼它,雖然jQuery的作品,它不適用你提供的代碼:S謝謝:)) – 2012-03-18 08:14:10

+0

所有你需要做的就是使用第二行(第一行是給根據你的評論來處理)。我不知道該把它放在哪裏,因爲我看不到你最初使用的代碼在哪裏,你說的沒有工作。但是,基本上,在那裏使用它。你不必「提醒」它,只是以你想要使用原始的'num'變量的任何方式使用它。 – 2012-03-18 08:16:20

+0

我已經在jsfiddle上打了起來 - http://jsfiddle.net/sturobson/xTEKm/37/ – 2012-03-18 08:22:52