显示小数点后最多3位数的数字

时间:2017-02-27 02:25:31

标签: javascript

我有一系列数字。例如:

3, 3.4567, 4.5, 5.72, 6.12345

如果原始数字是整数,或者小数点后的数字不超过3位,如果超过3,则如何显示小数点后最多3位?这就是我想要的:

3, 3.456, 4.5, 5.72, 6.123

我曾经使用过固定(),但它使得每个数字在小数点后面都有3位数。

是否有任何Javascript方法可用于实现我想要的目标?

---------更新-----------

我在指针中使用了这个:

Math.round(原始* 1000)/ 1000

来自旧帖子。它似乎有效。

3 个答案:

答案 0 :(得分:2)

您可以使用Number.prototype.toPrecision()舍入到小数点后的最接近的3位数,然后parseFloat()结果:

var num = 6.12345;
var precise = num.toPrecision(4); //"6.123"
var result = parseFloat(precise); //6.123

var num = 4.5;
var precise = num.toPrecision(4); //"4.500"
var result = parseFloat(precise); //4.5

如果这些数字在数组中,您可以创建一个函数customPrecision来映射:

function customPrecision(num) {
  return parseFloat(num.toPrecision(4));
}

var nums = [3, 3.4567, 4.5, 5.72, 6.12345];
var preciseNums = nums.map(customPrecision); //[3, 3.457, 4.5, 5.72, 6.123]

答案 1 :(得分:1)

不确定这是最好的方法,但它有效

Math.floor(3.4567*1000)/1000
Math.floor(6.12345*1000)/1000

答案 2 :(得分:1)

在打印之前,使用一元+运算符将固定字符串强制转换为数字:



var floats = [3, 3.4567, 4.5, 5.72, 6.12345]

function toMax3Decimals (x) {
  return +x.toFixed(3)
}

console.log(floats.map(toMax3Decimals))