如何打印/只显示两位小数(javascript / CSS / HTML)?

时间:2012-12-05 23:04:41

标签: javascript html css

我已经找到了很多这个问题的答案,但我不知道哪个是最好的答案或在哪里添加..

这是代码:

                             // HTML //
 <html>

 <head>

 <script type="text/javascript" language="Javascript">

 var v1 = 0;
 var v2 = 0;

 var answer = 0;

 function calculate () {

 answer = v1 / v2;

 var elem;
 elem = document.getElementById("v1");
 elem.value = v1;
 elem = document.getElementById("v2");
 elem.value = v2;

 elem = document.getElementById("answer");
 elem.value = answer;

 }

 function setValue(elem) {
 var val = 0.0;
 if (elem.value != "") {
 val = parseFloat(elem.value);
 }
 else {
 val = 0.0;
 }
 switch (elem.id) {
 case "v1": v1 = val; break;
 case "v2": v2 = val; break;
 }
 calculate();
 }
 </script>

 [..]

 </head>
 [...]

                              // HTML //

[...]

<form>
<input type="text" id="v1" onKeyUp="javascript: setValue(this);">
<input type="text" id="v2" onKeyUp="javascript: setValue(this);">
<input type="text" id="answer" readonly>
</form>

[...]

现在,什么会使结果显示或打印(我不知道哪一个是正确的)只有2位小数,应该放在哪里?

感谢。

1 个答案:

答案 0 :(得分:0)

使用.toFixed(2)

(parseFloat(elem.value)).toFixed(2);

您的代码存在的问题是尝试设置当前文本框的值似乎正在键入 ..所以,如果你点击退格,那就是再次覆盖并进入无限循环..

你似乎编写了大量代码来完成一项微不足道的任务。

移动内联javascript并将事件附加到脚本本身..

我对您的代码进行了一些修改..

<强> HTML

<input type="text" id="v1" value="0.00">
<input type="text" id="v2" value="0.00">
<input type="text" id="answer" readonly>

<强>的Javascript

 var elem = document.getElementsByTagName('input');

 for(var i =0;i< elem.length ; i++){
     elem[i].addEventListener("keyup", function(){
          setValue(this); 
     });
     elem[i].addEventListener("blur", function(){
          setCurrentValue(this); 
     });
}

function setCurrentValue(elem){
    elem.value = parseFloat(elem.value).toFixed(2);
}

function calculate(v1,v2) {
    answer = v2 == 0 ? 0 : (v1/v2);
    var elem = document.getElementById("answer");
    elem.value = parseFloat(answer).toFixed(2);;

}

function setValue(elem) {
    var v1 = document.getElementById('v1').value;
    var v2 = document.getElementById('v2').value;
    v1 = v1 == '' ? 0 : parseFloat(v1);
    v2 = v2 == '' ? 0 : parseFloat(v2);
    calculate(v1,v2);
}

<强> Check Fiddle