2015-04-29 64 views
3

我將使用兩位小數格式編號而不捨入四捨五入。 所以我排除了toFixed()函數。JS - 帶2位小數的格式編號不捨入

我已經試過這樣

a = 1,809999 
b = 27,94989 

a = Math.floor(a * 100)/100; --> 1,8 
b = Math.floor(b * 100)/100; --> 27,94 

OR 

a = Number(a.toString().match(/^\d+(?:\.\d{0,2})?/)); --> 1,8 
b = Number(b.toString().match(/^\d+(?:\.\d{0,2})?/)); --> 27,94 

不幸的是,的小數點後第二位是零,這被刪除了,我怎麼能這樣做,以保持它,並有1.80 =? 謝謝

+0

你很困惑四捨五入格式化。 –

+0

嘗試使用此:a.toFixed(2)//這修正了兩個小數位 – Kop4lyf

+0

可能重複的[JavaScript:格式化數字,精確到兩位小數](http://stackoverflow.com/questions/1726630/javascript-formatting-數量與 - 恰好兩個小數) – GillesC

回答

1

你可以嘗試這樣的:

a= a.toString().slice(0, (a.indexOf("."))+3); 

JSFIDDLE DEMO

0

四捨五入一個數是要改變它的價值,並應與數學運算來完成(數學。 Math.ceil,Math.round,...)。

格式編號,是關於如何將數字顯示給人類用戶(如日期格式)。

Javascript沒有配備可接受的原生工具來進行數字格式化。

您可以隨時使用四捨五入來讓javascript按照您想要的方式打印數字,但最終您會寫很多(可能是越野車)代碼。

我會建議使用庫來格式化您的號碼 http://numeraljs.com/

numeral(number).format('0.00'); 
0

只需要使用toFixed(),並通過像2號則表現之後。兩位小數像戰時

a = 1,809999 
b = 27,94989 

a = Math.floor(a * 100)/100; 
b = Math.floor(b * 100)/100; 

$(".testa").text(a.toFixed(2)); //see here. 
$(".testb").text(b.toFixed(2)); //see here. 

HTML:

<div class="testa"></div> 
<br> 
    <div class="testb"></div> 

我希望這會幫助你。並看到這個jsfiddle鏈接http://jsfiddle.net/RGerb/394/