我得到的一切几乎都在我想要的地方。我唯一的问题是,由于某种原因,我无法让bctf1
添加正确。假设bctf = 10
,代码的结果将是100.59
而不是10.59
。假设bctf = 25
,代码的结果为$251.03
而不是26.03
。
// BUY TOTAL
<script type="text/javascript">
function buytot(){
var bctf = document.getElementById('buyctf').value;
if(bctf.charAt(0) == "0" || bctf.charAt(0) == "" || bctf.charAt(0) == " "){
bctf2 = "0.00";
} else {
pcbctf = bctf*.029;
pcplusc = pcbctf+.30;
bctf1 = bctf+pcplusc;
bctf2 = Math.round(bctf1*100)/100;
}
document.getElementById('buyctotal').innerHTML = bctf2;
}
</script>
这是带有JS的HTML - &gt; http://jsfiddle.net/hhWDe/5/
答案 0 :(得分:1)
强制数据类型:
var bctf = parseFloat(document.getElementById('buyctf').value);
答案 1 :(得分:1)
您需要将元素值属性返回的String值转换为数字。像这样:
var bctf = Number(document.getElementById('buyctf').value);
// OR
var bctf = parseFloat(document.getElementById('buyctf').value, 10);
另外,考虑使用“toFixed”数字方法获取整个美元金额的“.00
小数位数:
var oneDollar = 1;
oneDollar; // => 1
oneDollar.toFixed(2); // => "1.00"
答案 2 :(得分:1)
您可以添加“+”将值转换为整数(或浮点数)。
它将接受任何字符串并转换它,如果字符串无法转换,它将返回NaN:
所以你的脚本将如下所示:
var bcft = +document.getElementByID('buyctf').value;
答案 3 :(得分:0)
谢谢大家:)这是工作代码。我在其他地方后添加bctf0 = Number(document.getElementById('buyctf').value);
,一切正常。
// BUY TOTAL
function buytot(){
var bctf = document.getElementById('buyctf').value;
if(bctf.charAt(0) == "0" || bctf.charAt(0) == "" || bctf.charAt(0) == " "){ bctf2 = "0.00";
} else {
bctf0 = Number(document.getElementById('buyctf').value);
pcbctf = bctf0*.029;
pcplusc = pcbctf+.30;
bctf1 = bctf0+pcplusc;
bctf2 = Math.round(bctf1*100)/100;
}
document.getElementById('buyctotal').innerHTML = bctf2;
}