如何在JavaScript中将整数转换为浮点?

如何在JavaScript中将整数转换为浮点?,javascript,integer,floating-point,Javascript,Integer,Floating Point,我得到了一个整数(例如,12),我想把它转换成一个浮点数,并指定小数位数 草稿 function intToFloat(num, decimal) { [code goes here] } intToFloat(12, 1) // returns 12.0 intToFloat(12, 2) // returns 12.00 // and so on… 您已经有了一个浮点数,它们都是JavaScript中的64位浮点数 要在呈现时获取小数点(作为字符串,用于输出),请使用以下命令: funct

我得到了一个整数(例如,12),我想把它转换成一个浮点数,并指定小数位数

草稿

function intToFloat(num, decimal) { [code goes here] }
intToFloat(12, 1) // returns 12.0
intToFloat(12, 2) // returns 12.00
// and so on…

您已经有了一个浮点数,它们都是JavaScript中的64位浮点数

要在呈现时获取小数点(作为字符串,用于输出),请使用以下命令:

function intToFloat(num, decPlaces) { return num.toFixed(decPlaces); }
(尽管我会重命名函数,因为它不是一个精确的描述)。

toFixed(x)不是一个跨浏览器的解决方案。 完整的解决方案如下:

function intToFloat(num, decPlaces) { return num + '.' + Array(decPlaces + 1).join('0'); }
如果您不需要(或不确定)固定的小数位数,您可以使用

xAsString = (Number.isInteger(x)) ? (x + ".0") : (x.toString());
这与那些上下文相关,例如,您有一个
x
作为
7.0
,但是
x.toString()
将为您提供
“7”
,您需要字符串作为
“7.0”
。如果x恰好是一个浮点值,比如说
7.1
7.233
,那么字符串也应该分别是
“7.1”或
“7.233”

不使用Number.isInteger():


美好的我——就像前面的评论者一样——从来都不知道有一个bulit在起作用我认为有了这么短的函数,就不需要为它声明另一个函数,它只会减慢脚本的速度。+1很好,当我看到javascriptNote上的许多隐藏特性时,我喜欢它,toFixed返回字符串,而不是Float@IvanKuckir是的,但在这种情况下这是可取的,否则,您无法区分
12.0
12.00
。toFixed在IE和其他浏览器中的工作方式不同。在您的方法中,IE中的intToFloat(1.45,1)将返回'1.5'Crome/FF将返回'1.4'
toFixed
在最新稳定版本的Chrome、Firefox、Internet Explorer和Opera中工作。它还可以在IE5/IE7/IE8/IE9/IE10文档模式下工作(没有IE6文档模式)。行为是一致的。toFixed在IE中工作不同。当运行intToFloat(1.45,1)时,IE将返回“1.5”,Crome或FF将返回“1.4”,我知道了。我没有测试。
xAsString = (x % 1 === 0) ? (x + ".0") : (x.toString());