2012-04-16 43 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

相关问题