繁体   English   中英

小数点问题以及javascript和HTML表单的格式问题

[英]Issue with decimal points and formatting with javascript and HTML forms

我不熟悉javascript,如果这是一个简单的任务,则表示歉意。

我正在尝试使用复选框通过HTML表单选择的选项来更新总计,但是数字格式存在问题。 我有这个工作,但是格式有问题。 当前的行为是不显示小数点,但功能正确。 如果将parseInt更改为parseFloat ,则得到小数点,但是如果我选中和取消选中项目,它将添加许多小数点。 如果我添加两个项目,那将给我一个5.90的数字,它仅显示5.9而不是5.90。

理想的行为是只有2个小数点(我不确定为什么它甚至显示2.95000001之类的东西),而当数量为5.90时,它正确显示而不是5.9。

到目前为止,这是我的代码

<head>
<script type="text/javascript">
    var total = 0;
    function test(item){
        if(item.checked){
           total+= parseInt(item.value);
        }else{
           total-= parseInt(item.value);
        }
        //alert(total);
        document.getElementById('Totalcost').innerHTML = total;
    }
</script>
</head>
<body>
<label>
<input type="checkbox" value="2.95" onClick="test(this);"  />Product 1</label>
<label>
<input type="checkbox" value="2.95" onClick="test(this);"  />Product 2</label>
<h3>Total Amount : $<span id="Totalcost"> </span></h3>

谢谢。

编辑:我也尝试更改此行:

total-= parseInt(item.value);

对此

total-= parseInt(item.value).toFixed(2);

但是它只是将金额加到总计的末尾而不是加起来(例如此输出:总金额:£02.002.002.00

toFixed(2)我认为您需要的是

https://www.w3schools.com/jsref/jsref_tofixed.asp

 <head> <script type="text/javascript"> var total = 0; function test(item){ if(item.checked){ total+= parseFloat(item.value); }else{ total-= parseFloat(item.value); } //alert(total); document.getElementById('Totalcost').innerHTML = total.toFixed(2); } </script> </head> <body> <label> <input type="checkbox" value="2.95" onClick="test(this);" />Product 1</label> <label> <input type="checkbox" value="2.95" onClick="test(this);" />Product 2</label> <h3>Total Amount : $<span id="Totalcost"> </span></h3> 

如果您希望在“。”之后仅保留2个小数。 你可以试试这个代码

 var total = 0;
        function test(item){
            if(item.checked){
               total+= parseFloat(item.value)
            }else{
               total-= ParseFloat(item.value)
            }
            //alert(total);
            document.getElem

entById('Totalcost').innerHTML = total.toFixed(2);
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM