【问题标题】:How to remove 0 after the fraction point?如何去除分数点后的 0?
【发布时间】:2018-04-16 04:17:40
【问题描述】:

我有以下变量:

var result = 30.03692740;

我想在 . 之后删除 0 ,这样最终的结果是:

30.3692740

怎么做?

我试过了:

result = result.replace('.0' , '.');

但它不起作用。

【问题讨论】:

  • (result.toString())
  • 数字不是字符串,希望你知道。
  • 注意:如果您的初始分配和最终结果是字符串,您的最终结果只能是30.3692740

标签: javascript jquery regex


【解决方案1】:

replace 适用于字符串。您需要将数字转换为字符串才能执行此操作:

var result = 30.03692740;
result = result.toString();
result = result.replace('.0', '.');
result = parseFloat(result);
console.log(result);

【讨论】:

  • 我不会 parseFloat ... OP 想要尾随 0
  • @JaromandaX -- 哈哈。尾随的 0 不是原始分配 result = 30.03692740
【解决方案2】:

请原谅我的好奇心,但你为什么要这样做?

答案是:

var result = 30.03692740; 
result = result.toString().replace('.0' , '.');

【讨论】:

    【解决方案3】:

    正如其他人指出的那样,replace() 与字符串一起使用,因此您需要先将数字转换为字符串。使用.toString() 进行转换是最清晰的方法,但如果性能很关键,那么这样会更快:

    result = (result + "").replace('.0' , '.');
    

    或者,您可以使用数学而不是转换为字符串。首先将整数部分和小数部分分开,将小数部分乘以 10 以去除第一个零,然后将两个部分再次相加。这种方法的唯一问题是您会遇到浮点数精度。通常这很好,可以忽略,但如果是问题,可以使用.toFixed() 修复:

    var result = 30.03692740;
    result = parseInt(result) + (result % 1 * 10);
    console.log(result);
    console.log(result.toFixed(6));

    【讨论】:

      猜你喜欢
      • 2019-06-02
      • 2023-03-25
      • 1970-01-01
      • 2012-08-11
      • 1970-01-01
      • 2023-02-09
      • 1970-01-01
      • 2022-07-19
      • 1970-01-01
      相关资源
      最近更新 更多