我有一个整数(例如12),我想将其转换为一个指定小数位数的浮点数。
function intToFloat(num, decimal) { [code goes here] }
intToFloat(12, 1) // returns 12.0
intToFloat(12, 2) // returns 12.00
// and so on…
我有一个整数(例如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位浮点数。
如果要将其渲染为带小数位的字符串(以便进行输出),可以使用.toFixed()
,像这样:
function intToFloat(num, decPlaces) { return num.toFixed(decPlaces); }
你可以在这里测试一下(尽管我会重新命名这个函数,因为它并不是准确的描述)。
toFixed(x)不是跨浏览器的解决方案。完整解决方案如下:
function intToFloat(num, decPlaces) { return num + '.' + Array(decPlaces + 1).join('0'); }
toFixed
在最新的 Chrome、Firefox、Internet Explorer 和 Opera 稳定版本中都能正常工作。它也可以在 IE5/IE7/IE8/IE9/IE10 文档模式下工作(没有 IE6 文档模式)。其行为是一致的。 - alexiaxAsString = (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():
xAsString = (x % 1 === 0) ? (x + ".0") : (x.toString());
12.0
和12.00
。 - alexia