📜  js 删除小数点后的零 - Javascript (1)

📅  最后修改于: 2023-12-03 15:32:22.637000             🧑  作者: Mango

JS 删除小数点后的零 - Javascript

在Javascript中,我们常常需要进行数字的计算和展示,但是由于精度问题,会导致结果中出现许多无意义的零。本篇文章将介绍如何使用Javascript来删除小数点后的零。

方法一:使用toPrecision方法

我们可以使用Javascript内置的toPrecision方法来获取指定位数的数字,并删除小数点后多余的零。代码如下:

let num = 1.23000;
let trimmedNum = parseFloat(num.toPrecision(12)); // 1.23

在上述代码中,toPrecision方法会返回一个字符串类型的数字,我们需要使用parseFloat方法将其转换为浮点型数据。同时,toPrecision方法需要传入一个参数,表示返回的数字位数。在这个例子中,我们设定了12位,这个数字可以根据实际需要来进行修改。

方法二:使用正则表达式

我们也可以使用正则表达式来删除小数点后多余的零。代码如下:

let num = 1.23000;
let trimmedNum = num.toString().replace(/(\.\d*?[1-9])0+$/g, "$1").replace(/\.0*$/g, "");
// 1.23

在上述代码中,我们先将数字转换为字符串类型,并使用两个正则表达式来分别匹配小数点后多余的零和末尾的小数点。这个方法需要注意的是,如果数字本身是整数,那么可能不能正确删除末尾的小数点。

方法三:使用自定义函数

使用自定义函数也是一个不错的选择。代码如下:

function trimTrailingZeros(num) {
  let s = num.toString();
  let decimalPos = s.indexOf(".");
  if (decimalPos !== -1) {
    let i = s.length - 1;
    while (i > decimalPos && s[i] === "0") {
      i--;
    }
    s = s.slice(0, i + 1);
  }
  return parseFloat(s);
}
let num = 1.23000;
let trimmedNum = trimTrailingZeros(num); // 1.23

在上述代码中,我们定义了一个自定义函数,使用了一些基本的字符串操作来删除小数点后的多余零。

以上三种方法都可以很好地删除小数点后的多余零,具体使用哪种方法可以根据实际开发需要进行选择。

参考:Javascript去掉小数点后面无用的0