Javascript 为什么该代码不能正确地舍入数字

Javascript 为什么该代码不能正确地舍入数字,javascript,Javascript,为什么不管发生什么,这段代码都会将月份取整?有什么不同吗?函数parseInt将数字转换为不支持小数(小数)的整数 在此处使用parseFloat: months = parseInt(months); months = Math.round(months); 为什么首先需要对int进行四舍五入?它应该总是一个整数,对吗 也就是说,在没有指定基数的情况下,永远不要使用parseInt,在您的情况下,基数应该是10 months = parseFloat(months); months = Ma

为什么不管发生什么,这段代码都会将月份取整?有什么不同吗?

函数
parseInt
将数字转换为不支持小数(小数)的整数

在此处使用
parseFloat

months = parseInt(months);
months = Math.round(months);

为什么首先需要对int进行四舍五入?它应该总是一个整数,对吗

也就是说,在没有指定基数的情况下,永远不要使用
parseInt
,在您的情况下,基数应该是10

months = parseFloat(months);
months = Math.round(months);

因为当你说
parseInt(months)
?Duplicate时会截断月份,所以有很多关于这个问题的答案:RTFM-。“parseInt将数字截断为整数值。”@j08691不要说“RTFM”,它是rude@jcollum“f”是不是意味着“太棒了”?一开始我也有点被这句话吓坏了,但看起来他一定是考虑到了分数月的输入。只有这样这个问题才有意义。奇怪。
始终指定此参数以消除读取器混淆并保证可预测的行为。未指定基数时,不同的实现会产生不同的结果。
months = parseFloat(months);
months = Math.round(months);
months = parseInt(months, 10);