[英]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.