使用小数的Javascript操作符问题

Javascript Operators Issue working with Decimals

本文关键字:操作符 问题 Javascript 小数      更新时间:2023-09-26

我几乎得到了我想要的东西。我唯一的问题是,由于某种原因,我不能把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>

这是HTML与JS -> http://jsfiddle.net/hhWDe/5/

强制此数据类型:

var bctf = parseFloat(document.getElementById('buyctf').value);

需要将元素值属性返回的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"

您可以添加"+"来将值转换为整数(或浮点数)。

它将接受任何字符串并转换它,如果字符串不能转换,它将返回NaN:

所以你的脚本看起来像这样:
var bcft = +document.getElementByID('buyctf').value;

谢谢大家:)这是工作代码。我在else之后添加了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;
}