我有一个javascript来自动填充一些输入,不需要用我的代码四舍五入,它工作得很好,它会更改并自动填充输入,但尝试添加Math.round或四舍五进它会舍入小数,但不会更改。如果一些addEventListener像必须执行一样更改,则不会自动填充
工作代码
taxes.value = parseInt(parseFloat(totaltopay.value) * (1.00/1.19));
添加一些代码来舍入小数,它不会自动填充输入
taxes.value = parseInt(parseFloat(Math.round(totaltopay.value) * (1.00/1.19)));
有什么方法可以绕过这个结果并使其发挥作用吗?
它必须执行以下操作:
taxes = 23123.764345645
循环并仅显示给23124
,不带点,不带逗号
编辑
输入数量用输入数量*输入销售价格来改变要支付的总额,这就给出了要支付的总价,这个totaltopay输入我们取金额并获得税款,它在不取整的情况下工作,但试图取整它时,addEventListener停止工作。。。正如你所理解的,当改变销售价格或数量时,税收也是自动的,因为总付款会发生变化,因此税收也会发生变化
因此,需要记住的事项:
parseInt()
创建整数。你给它一个字符串或数字,得到一个不带十进制大小写的数字。注意:parseInt
有基数,您可能希望使用基数10:parseInt(yourString, 10);
parseFloat()
取一个字符串并返回一个数字,大小写为十进制Math.round()
取一个数字(*)并返回一个整数,四舍五入到最接近的整数Number()
获取字符串(或数字)并将其转换为数字,保留小数大小写
所以,你需要的是:
taxes.value = Math.round(Number(totaltopay.value) * 1.00 / 1.19);
(*)-Math.round可以处理字符串,但MDN的文档说:给它一个数字
您只需要使用Math.round()
,它对数字进行四舍五入并返回一个整数值。当应用*
(乘法)或/
(除法)时,值会自动解析为Number,因此不需要硬编码方法来解析它们。
taxes.value = Math.round(totaltopay.value * 1.00 / 1.19);