我有一個整數(例如),我想將它轉化成一個浮點數,帶小數位的指定數量。如何將整數轉換爲JavaScript中的浮點數?
草案
function intToFloat(num, decimal) { [code goes here] }
intToFloat(12, 1) // returns 12.0
intToFloat(12, 2) // returns 12.00
// and so on…
我有一個整數(例如),我想將它轉化成一個浮點數,帶小數位的指定數量。如何將整數轉換爲JavaScript中的浮點數?
草案
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); }
You can test it out here(雖然我會重命名功能,賦予它不是一個準確的描述) 。
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():
xAsString = (x % 1 === 0) ? (x + ".0") : (x.toString());
+1永遠不知道有該內置功能:P – timdream 2010-11-27 18:42:49
不錯!我 - 就像以前的評論者 - 從來不知道有一個插入功能! :)我認爲用這麼短的函數,不需要爲此聲明另一個函數,它只會減慢腳本的速度。 – nyuszika7h 2010-11-28 07:27:45