在jquery中舍入十进制数的结果

时间:2012-03-18 07:50:23

标签: jquery rounding

我有这段代码 -

$(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/:)

2 个答案:

答案 0 :(得分:3)

由于我们不知道您尝试使用toFixed()的位置,因此以下是您可以在代码中使用它的一个示例:

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

答案 1 :(得分:1)

鉴于num是一个百分比,并且可能如评论中所述:1.0204081632653061%它将作为字符串返回。因此,在致电parseFloat()之前,您需要致电toFixed()以检索浮点数:

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

JS Fiddle demo;

参考文献: