【问题标题】:javascript floating decimaljavascript浮点小数
【发布时间】:2011-04-15 01:54:22
【问题描述】:

我有一些 javascript 可以动态地将用户在文本字段中输入的内容(通过基本 var)相乘,并将其显示在一个跨度中。现在我只是想弄清楚如何让结果的小数位浮动到 2 位,即 10.00 而不是 10 我找到了 toFixed 函数,但似乎无法正确使用它......我将不胜感激。谢谢

<input id="quantity">
<span id="result"></span> 
<script>

window.onload = function() {
   var base = 3;
   document.getElementById('quantity').onkeyup = function() {
      if(this.value.length == 0) {
         document.getElementById('result').innerHTML = '';
         return;
      }
      var number = parseInt(this.value);
      if(isNaN(number)) return;
      document.getElementById('result').innerHTML = number * base;
   };
   document.getElementById('quantity').onkeyup();
};

【问题讨论】:

  • 您确定要在此处使用parseInt 吗?它将“4.21”变成“4”。所以用户会被告知 4.21 * 3 = 12.00,但事实并非如此。 parseFloat 将产生一个浮点值。

标签: javascript math floating-point decimal


【解决方案1】:
window.onload = function() { 
 var base = 3; 
 document.getElementById('quantity').onkeyup = function() { 
   if(this.value.length == 0) { 
     document.getElementById('result').innerHTML = ''; 
     return; 
   }    
   if(isNaN(this.value)) 
     return; 
   var number = parseFloat(this.value); 
   var result = (number * base).toFixed(2);
   document.getElementById('result').innerHTML = result; 
   }; 
   document.getElementById('quantity').onkeyup();
};

【讨论】:

  • 首先,您能否将parseInt 更改为parseFloat,因为提问者不太可能希望将整数乘以2dp。此外,使用var result = (number * base).toFixed(2);(在一个语句中表示)或拥有两个变量并拥有var preciseResult = number * base; var result = preciseResult.toFixed(2); 可能更清楚。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-12
  • 2016-08-28
  • 2012-11-18
相关资源
最近更新 更多