【问题标题】:Why is my toFixed() function not working?为什么我的 toFixed() 函数不起作用?
【发布时间】:2011-06-23 15:53:08
【问题描述】:

这是相关代码。我已经通过警报确认保存了正确的数字,只是没有更改为小数点后 2 位。

if ($(this).attr('name') == 'time') {
    var value = $(this).val();
    parseFloat(value).toFixed(2);
    alert(value);
    editEntry.time = value;
}

【问题讨论】:

  • 注意:.toFixed(x) 会返回一个字符串对象

标签: javascript jquery number-formatting


【解决方案1】:

您没有将解析后的浮点数分配回您的值 var:

value = parseFloat(value).toFixed(2);

应该解决问题。

【讨论】:

  • 你不能也乘以 1 吗?
  • 我认为应该是 value = parseFloat(value.toFixed(2));也就是说,除非您想要一个字符串作为值。 ToFixed 返回一个字符串,在里面做 toFixed 会将值保持为一个数字。
  • 该值被分配给一个输入表单字段,它始终是一个字符串。
  • @dchin 提出了一个有效的观点......如果你需要返回一个数字,你应该这样做......
  • @dchin 如果你想将 0 拖到某个位置,例如百分之一或千分之一,你确实希望它作为一个字符串来保留那么多数字。例如,如果位数不变,计数器看起来会更稳定。如果您将 parseFloat 保留为数字,则 parseFloat 很可能会导致您丢失尾随数字,撤消“小数点后 3 位”占位符 0 位,对吗?
【解决方案2】:

您的转化数据是响应[25],请按照以下步骤操作。

var i = parseFloat(response[25]).toFixed(2)
console.log(i)//-6527.34

【讨论】:

    【解决方案3】:

    简单示例(有效):

    var a=Number.parseFloat($("#budget_project").val()); // from input field
    var b=Number.parseFloat(html); // from ajax
    var c=a-b;
    $("#result").html(c.toFixed(2)); // put to id='result' (div or others)
    

    【讨论】:

      【解决方案4】:
      document.getElementById("EDTVALOR").addEventListener("change", function() {
        this.value = this.value.replace(",", ".");
        this.value = parseFloat(this.value).toFixed(2);
        if (this.value < 0) {
          this.value = 0;
        }
        this.value = this.value.replace(".", ",");
        this.value = this.value.replace("NaN", "0");
      });
      

      【讨论】:

      • "指定值“0,01”无法解析,或超出范围。"
      【解决方案5】:

      我多次尝试了函数 toFixed(2)。每次控制台显示“toFixed() 不是函数”。

      但我的解决方法是使用 Math.round()

      例如:

      if ($(this).attr('name') == 'time') {
          var value = parseFloat($(this).val());
          value = Math.round(value*100)/100; // 10 defines 1 decimals, 100 for 2, 1000 for 3
          alert(value);
      }
      

      这东西肯定对我有用,它也可能对你们有帮助......

      【讨论】:

        【解决方案6】:

        您的值不能是整数,因此添加 0 将您的值转换为整数,然后 toFixed() 将起作用。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-03-21
          • 2021-12-18
          • 1970-01-01
          • 2017-08-18
          • 2010-10-18
          • 1970-01-01
          • 2022-11-25
          相关资源
          最近更新 更多