【问题标题】:Javascript parseInt parseFloat and rounding decimalsJavascript parseInt parseFloat 和四舍五入的小数
【发布时间】:2016-08-01 19:33:26
【问题描述】:

我有一个 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,不带点,不带逗号

编辑

输入数量用输入数量 * 输入销售价格更改要支付的总金额,这给出了要支付的总价格,这个总支付输入我们取金额并获得税款,它无需四舍五入即可工作,但尝试将其四舍五入addEventListener 停止工作...正如您可能理解的那样,在更改销售价格或数量时,税收也是自动填充的,因为总支付金额会发生变化,因此税收也会发生变化

【问题讨论】:

  • 您的意见是什么?您期望得到什么结果?
  • 你需要parseInt
  • Math.round((totaltopay.value) * (1.00/1.19));

标签: javascript php jquery html forms


【解决方案1】:

所以,要记住的事情:

  • parseInt() 创建整数。你给它一个字符串或一个数字,你会得到一个没有小数的数字。注意:parseInt 有一个基数,您可能想使用基数 10:parseInt(yourString, 10);
  • parseFloat() 接受一个字符串并返回一个数字,大小写为小数
  • Math.round() 接受一个数字 (*) 并返回一个整数,四舍五入到最接近的整数
  • Number() 接受一个字符串(或数字)并将其转换为数字,保持小数形式

所以,你需要的是:

taxes.value = Math.round(Number(totaltopay.value) * 1.00 / 1.19);

(*) - Math.round 适用于字符串,但 MDN's docs say: give it a number

【讨论】:

    【解决方案2】:

    您只需要使用 Math.round() 将数字四舍五入并返回一个整数值。在应用 *(乘法)或 /(除法)时,值会自动解析为 Number,因此无需硬编码方法来解析它们。

    taxes.value = Math.round(totaltopay.value * 1.00 / 1.19);
    

    【讨论】:

    • 没有 parserInt 和没有 parseFloat?我试试看
    • @Nokelekele 在添加的情况下您需要注意......因为+ 也代表连接
    • @Nokelekele :很高兴为您提供帮助
    猜你喜欢
    • 1970-01-01
    • 2017-11-26
    • 1970-01-01
    • 2022-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-06
    相关资源
    最近更新 更多