Explode 如何在PHP中上标点后只有两位小数

Explode 如何在PHP中上标点后只有两位小数,explode,superscript,decimal,Explode,Superscript,Decimal,我有以下代码: <?php echo $price; ?> 此代码就像一个符咒,在点后的数字上标: $parts = explode('.', $price); echo "$parts[0].<sup>$parts[1]</sup>"; $parts=explode('.',$price); 回显“$parts[0]。$parts[1]”; 但如果我有这样一个价格:1500.99欧元,它上面也有欧元符号。这能阻止吗?如果不是数字,就不要在上面加上标,

我有以下代码:

<?php echo $price; ?>
此代码就像一个符咒,在点后的数字上标:

$parts = explode('.', $price); 
echo "$parts[0].<sup>$parts[1]</sup>";
$parts=explode('.',$price);
回显“$parts[0]。$parts[1]”;
但如果我有这样一个价格:1500.99欧元,它上面也有欧元符号。这能阻止吗?如果不是数字,就不要在上面加上标,或者只在点后加2个字符

它不需要是相同的代码,如果你有其他东西,我会试试看


谢谢

正则表达式可能更灵活一些:

<?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>€"

正则表达式可能更灵活一些:

<?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>€"

只要一个简单的问题:)如果除名符是逗号,我应该在上面的代码中更改什么?:)谢谢。编辑了货币评论中的第二个示例,格式为
1.500,00
Thank buddy,非常感谢你的帮助。只需一个简单的问题:)如果除名器是逗号,我应该在上面的代码中更改什么?:)谢谢。编辑货币评论中的第二个示例,格式为
1.500,00
谢谢,伙计,非常感谢你的帮助。