我有这个问题。我想将整数71
(类型number
)转换为一个十进制,表示71.0
,但我需要它保持类型number
。搜索和我发现的唯一解决方案是使用toFixed(1)
,然后parseFloat
上返回number
但不带小数点的71
。
const float = (num) => {
let fixed = (num).toFixed(1)
let float = parseFloat(fixed)
return float
}
float(71)
我该怎么做?
这是没有意义的,因为整数(整数)几乎总是等于它的等效浮点数,除非有一些奇数精度行为。
71 === 71.0
71 === 71.00
- …
71 !== 71.000000001
是否要使用精度截断浮点数?
const truncateFloat = (n, p = 0) => parseFloat(n.toFixed(p));
// Truncate an irrational number (PI)
console.log(truncateFloat(Math.PI, 2) === 3.14) // true
删除parseFloat(fixed)
,保持原样
const float = (num) => {
let fixed = (num).toFixed(2)
//let float = parseFloat(fixed)
return float
}
float(71)
使用toFixed(n)
,其中n
为小数点后第10位。
您已经声明,您需要将其保留为末尾的number
,但事实是,如果小数为0
,则它将始终四舍五入为整数。因此,您可能更愿意考虑在打印到屏幕时添加toFixed(n)
,以便他们总是打印额外的。
========= 更新
我刚找到一个更干净的解决方案。考虑下面的解决方案链接
const float = (num) => {
tmp = '0.00';
tmp = (+tmp + num).toFixed(2);
return tmp
}
float(71)
参考:如何使用parseFloat(0.00)获得一个浮点数