Javascript 在parseFloat()之后添加小数位数的最快方法,类似于Python';s float()

Javascript 在parseFloat()之后添加小数位数的最快方法,类似于Python';s float(),javascript,Javascript,据我所知,JavaScript的parseFloat()没有在数字中添加小数点(即.0),而Python的float()则添加小数点。我希望parseFloat()具有与float()类似的行为,并希望它尽可能快地运行 我提出了两个粗略的解决方案来实现这一点,但我确信它们不是最快的: 方法1: 方法2(有点愚蠢,但更直截了当): 将“.0”添加到数字的末尾(如果它是整数),然后将其解析回float 实现这一目标的最佳或最快方法是什么?谢谢 Python区分整数和浮点。JavaScript不会

据我所知,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);