2016-03-03 60 views
2

道歉的常見問題,但因爲我試圖找到一個直接的答案我在論壇上的問題,它似乎並沒有發現它。Javascript +轉換中的數字格式?

看,我有在Javascript中,我放在一個字符串的形式收到一個號碼,像這樣的文本輸入(ID = avt_ht):

1 200,00

我取這個值,將其轉換成有東西漂浮這樣的:

var ht_txt = $("#avt_ht").val(); 
ht_txt = ht_txt.replace(' ', ''); 
var ht_val = parseFloat(ht_txt); 

然後,我用它來作一些計算,像

var ttc_val = ht_val + tva_val; 

現在我的觀點是我想再次轉換這些數字,以便在我的開始時爲它們提供相同的格式。我嘗試過這樣的事情:

var ttc_txt = ttc_val.toLocaleString(); 

但它不合適。我真的不知道我是否可以像使用PHP一樣在JS中使用NumberFormat(它似乎不是使用它的相同方式),如果我必須使用正則表達式等等......

是否有人知道如何去做吧 ?浮動的

+0

您還需要以點代替逗號爲parseFloat正常工作。 – jcubic

+0

jcubic說的是,在'parseFloat('1200,00')'中只使用了數字的'1200'部分,所以像'1200,12'這樣的字符串不會保留它們的小數部分,它必須是'1200.12 」。 – RobG

+0

謝謝,夥計們!我也幫助修改美分。但是你知道爲什麼,如果我試圖再次修改它,它不執行我的'ht_txt.replace('','');'?我不知道這是否與事實有關,如果我改變一個單位,它不顯示「,00」 – LittleDev

回答

2

使用toFixed()方法:

var ttc_txt = parseFloat(ttc_val).toFixed(2); 

返回類似"123.00" 你可以使用它作爲字符串。如果你需要一個嚴格的字符串類型,只需添加+""來表達:

var ttc_txt = parseFloat(ttc_val).toFixed(2)+""; 
+0

太棒了!我只需要通過你的'.toFixed(2)+「」;'來更改'toLocaleString',現在我的數字不再有計算問題了。我只需要在這裏和那裏合一一點。謝謝,德米特里! – LittleDev