Javascript 在parseFloat()之后添加小数位数的最快方法,类似于Python';s float()
据我所知,JavaScript的Javascript 在parseFloat()之后添加小数位数的最快方法,类似于Python';s float(),javascript,Javascript,据我所知,JavaScript的parseFloat()没有在数字中添加小数点(即.0),而Python的float()则添加小数点。我希望parseFloat()具有与float()类似的行为,并希望它尽可能快地运行 我提出了两个粗略的解决方案来实现这一点,但我确信它们不是最快的: 方法1: 方法2(有点愚蠢,但更直截了当): 将“.0”添加到数字的末尾(如果它是整数),然后将其解析回float 实现这一目标的最佳或最快方法是什么?谢谢 Python区分整数和浮点。JavaScript不会
parseFloat()
没有在数字中添加小数点(即.0
),而Python的float()
则添加小数点。我希望parseFloat()
具有与float()
类似的行为,并希望它尽可能快地运行
我提出了两个粗略的解决方案来实现这一点,但我确信它们不是最快的:
方法1: 方法2(有点愚蠢,但更直截了当): 将
“.0”
添加到数字的末尾(如果它是整数),然后将其解析回float
实现这一目标的最佳或最快方法是什么?谢谢 Python区分整数和浮点。JavaScript不会,除非在非常有限的情况下。因此,解析回float将使其返回原始状态(其中
1
和1.0
是相同的)。JavaScript中区分1
和1.0
的唯一方法是字符串形式
您的代码基本上就是它,除了整个if
true块可以替换为number.toFixed(1)
。替换它,并稍微压缩功能:
const handlePrec = number => Number.isInteger(number) ? number.toFixed(1) : number;
需要注意的是,这将为整数返回一个字符串,并为其他所有内容返回原始类型。如果希望它始终返回字符串:
const handlePrec = number => Number.isInteger(number)
? number.toFixed(1) : String(number);
如果您想要xx.0作为javascript中的数字?您不能,而是可以将其转换为字符串
const handlePrec = number => Number.isInteger(number)
? number.toFixed(1) : String(number);