2014-03-24 77 views
1

有人可以指出我的方向是否正確,請刪除位於一個範圍內的不同長度的小數位數,即網站上產品的價格。刪除小數位數jquery/JS

£6.9800

上面應該說£6.98

我們有一個網站,有些價格是需要的是在4位小數e.g 0.0260£,我們有我們的站點設置進行顯示。但我們有其他價格不需要的其他價格,例如以上價格和0.99英鎊,1.99英鎊,10.99英鎊,100.99英鎊,1000.99英鎊

有沒有一種方法可以將價格限制在小數點後兩位而沒有任何舍入?

我可以使用JS/Jquery(因爲我的CMS讓我)。

我試過裝飾與此類似的,但我似乎無法滿足不同長度的數字(我可能只是啞巴)

我以爲我可以使用這樣的,但我不是100%當然:http://www.mredkj.com/javascript/numberFormat.html

回答

2

使用「toFixed」方法。通過這種方式:

var f = 1.2345; 
f.toFixed(2); 

編輯: 你可以看到濃湯的回答這樣一個問題:Display two decimal places, no rounding

問候, 凱文

+1

'無任何rounding','1.556.toFixed(2); //「1.56」'⇒'toFixed'輪 –

0

假設量不是字符串:

var f = 1.556; 
Math.floor(1.556*100)/100; 
0

那麼這是一個使用jQuery的例子

Html假設價格在標籤中。

<p>0.0260</p> 
<p>0.1260</p> 
<p>6.9800</p> 
<p>100.99</p> 
<p>1.99</p> 
<p>10.99</p> 
<p>1000.99</p> 

腳本

$.each($("p"),function(){ 
    var number = parseFloat($(this).text()) 
    var integerPart = number.toString().split(".")[0] == 0 ? 0: number.toString().split(".")[0].length; 
    var decimalPart = number.toString().split(".")[1].length; 

    if(decimalPart){ 
     $(this).text(number.toPrecision(integerPart + decimalPart.length)) 
    }else{ 
     $(this).text(number.toPrecision(integerPart + 2)) 
    } 

}) 

Fiddle

+0

非常感謝 - 如果數字是一個html值,請用一個貨幣符號來編輯這個數據如何編輯?即£0.0260 user3456188

+0

@ user3456188看看這個小提琴,我剛剛刪除並添加了跨度的文本http://jsfiddle.net/dH8S9/3/ –

+0

的貨幣符號感謝您的幫助,但£0.0260仍然出來因此 - 應該是0.026英鎊和6.9800英鎊應該是6.98英鎊 - 非常感謝 – user3456188