假设我有一个字符串
'6,18284828814828481'
Javascript数字确实支持一定数量的小数。从我所看到的,我应该返回这样的东西:
6.182848288148285
有没有办法把字符串转换成最接近的有效数字?
我尝试做的是这样的事情:
const limitDecimals = (num: string): string|number => {
let maxDecimalDigits = 17;
for(let i = maxDecimalDigits; i >= 0; i--) {
let [integerPart, decimalPart] = num.split('.');
if(decimalPart){
decimalPart = decimalPart.slice(0, i);
if(decimalPart.length > 0) {
return`${integerPart}.${decimalPart}`;
}
}else{
return integerPart;
}
}
return num;
}
注意:由于它还不起作用,因此未转换为数字
2条答案
按热度按时间92vpleto1#
parseFloat(string)应该为你想要的工作?
您可以将字符串
'6,18284828814828481'
中的“,”(逗号)替换为.“”,并传递给parseFloat:q8l4jmvw2#
不幸的是,默认情况下,js不够精确,无法让您操作带有大量小数的数字。
一种方法是使用decimal.js等示例的外部库