Javascript parseInt parseFloat和舍入小数


Javascript parseInt parseFloat and rounding decimals

我有一个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);