2012-04-16 45 views
1

我有這樣的代碼:如何在PHP上標點後只有兩位小數

<?php echo $price; ?> 

,給了我這樣的結果:

1,500.99 

此代碼的工作就像一個魅力後上標數字點:

$parts = explode('.', $price); 
echo "$parts[0].<sup>$parts[1]</sup>"; 

但是,如果我有這樣的價格:1,500.99€它上標€的標誌以及。這可以停止嗎?如果不是數字,不要上標,要麼只在點後2個字符上標?

它不需要是相同的代碼,如果你有別的東西,我會試試看。

感謝

回答

1

正則表達式可能是一個更靈活一點:

<?php 
$price = "1,500.99"; 
$pattern = '/([\d,]+\.)(\d+)(.*)$/'; 
// ...or '/([\d\.]+,)(\d+)(.*)$/' if your currencies are 1.500,00 

$formatted = preg_replace($pattern, '$1<sup>$2</sup>$3', $price); 
// gives "1,500<sup>.99</sup>" 

$price = "1,500.99€"; 

$formatted = preg_replace($pattern, '$1<sup>$2</sup>$3', $price); 
// gives "1,500<sup>.99</sup>€" 
+0

Niceee,非常感謝好友;) – 2012-04-16 18:31:59

+0

只是一個簡單的問題:)我應該在上面的代碼更改,如果deliminator是逗號? :) 謝謝。 – 2012-04-16 18:36:25

+0

在格式爲'1.500,00' – BenLanc 2012-04-16 18:48:31

相關問題