【问题标题】:Problems with JavaScript "parseInt()" decimal stringJavaScript“parseInt()”十进制字符串的问题
【发布时间】:2021-12-19 21:01:34
【问题描述】:

使用toString函数后,我得到电子商务网页购物车代码中的total_amount,但是当我将14.82字符串转换为int数字时,小数点消失了。

<script>
 var total_amount_string = <?=json_encode($cart['total_pvp'])?>;//-> 14,82
 var total_amount_int = parseInt(total_amount_string).toFixed(2); //-> 14.00(here is the error)

console.log(total_amount_string) //-> 14,82
console.log(total_amount_int) //-> 14.00
</script>

怎么了?

【问题讨论】:

  • 是因为14,82中的,...期望值是多少...

标签: javascript


【解决方案1】:

如果输入字符串是 "14,82" 并且您想要值 14.82,则需要将 , 转换为 .,然后使用 parseFloat

var total_amount_int = parseFloat(
        total_amount_string.replace(/,/g, ".")
    ).toFixed(2);

parseInt 只会解析定义整数的字符串的前导部分(“int” = “integer” = “whole number”),因此它在, 处停止。 parseFloat 将解析十进制数,但仅将 . 理解为小数点,而不理解 ,,即使在 , 是小数点的语言环境中也是如此。

【讨论】:

  • 当我输入答案时,无线被踢掉了——你打败了我。 +1
【解决方案2】:

您应该使用 parseFloat() 而不是 parseInt()。因为整数不是小数。

【讨论】:

    【解决方案3】:

    整数没有小数部分,因此任何“转换”为 int 的数字都将丢失其小数部分。如果你想保留小数部分,你应该使用parseFloat。 另一方面,请确保您没有使用逗号:Javascript parse float is ignoring the decimals after my comma

    【讨论】:

      【解决方案4】:

      您的号码使用了“,”分隔符。不幸的是,JavaScript 中没有用于数字解析的语言环境设置,因此您不得不更加hacky:

      var total_amount_string = "14,823462";
      var total_amount_float = parseFloat(total_amount_string.replace(",", ".")).toFixed(2);
      
      document.getElementById("total_amount_string").innerText = total_amount_string;
      document.getElementById("total_amount_float").innerText = total_amount_float;
      total_amount_string: <span id="total_amount_string"></span>
      <br />
      total_amount_float: <span id="total_amount_float"></span>

      【讨论】:

        【解决方案5】:

        parseInt() 函数解析一个字符串并返回一个整数。 ParseInt 只返回返回字符串中的第一个数字!。如果第一个字符不能转换为数字,则 parseInt() 返回 NaN。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-03-07
          • 1970-01-01
          • 1970-01-01
          • 2012-12-06
          • 2011-11-02
          • 1970-01-01
          • 2020-09-15
          • 1970-01-01
          相关资源
          最近更新 更多