如何在没有科学记数法的情况下显示“toPrecision”的结果?

时间:2011-01-14 08:21:10

标签: javascript

根据http://www.mredkj.com/javascript/nfbasic2.html,以下代码将导致 5.6e + 2

num = 555.55;
result = num.toPrecision(2); // result will equal 5.6e+2

如何让结果变量的输出显示而不用科学记数法(即e)?

5 个答案:

答案 0 :(得分:18)

要获得精度降低的浮点数,可以像使用toPrecision()那样使用result = parseFloat(num.toPrecision(2)); ,然后使用parseFloat()解析科学计数法,如下所示:

{{1}}

如果您不希望降低精度,可以使用toFixed()获取具有一定小数位数的数字。

答案 1 :(得分:12)

Number((555.55).toPrecision(2))

http://jsfiddle.net/K5GRb/

答案 2 :(得分:0)

尝试

result = Math.ceil(555.55);

答案 3 :(得分:0)

我有一个类似的愿望,就是要保持一定的精度,不带尾随零,也没有科学记数法。我认为以下功能有效:

function toDecimalPrecision(val, digits) {
  val = (+val).toPrecision(digits);
  if (val.indexOf('e') >= 0) {
    val = (+val).toString();
  } else if (val.indexOf('.') >= 0) {
    val = val.replace(/(\.|)0+$/, '');
  }
  return val;

答案 4 :(得分:-3)

eval是邪恶的。

待办事项

var result = num.toPrecision(2).toString(10);

代替。