如何在PHP中删除小数点后第三位的尾随零?

如何在PHP中删除小数点后第三位的尾随零?,php,decimal,woocommerce,Php,Decimal,Woocommerce,提前谢谢 我有一个商业商店,需要上传一些小数点后3位的价格,例如0.012英镑(购买数量为000的产品) 我的大多数产品都是“普通”产品,小数点后两位 WooCommerce中有一个函数允许小数点后3位-很好。也是一个删除尾随零的函数,但如果是整数,则会删除尾随零,例如,10.00英镑变为10英镑 当95%的“普通”价格产品开始显示10.000英镑或5.230英镑时,我的问题就出现了 简而言之,我正在寻找一种删除尾随零的方法,但只在小数点后3位 留存-0.012英镑 删除价格(如10.00英镑或

提前谢谢

我有一个商业商店,需要上传一些小数点后3位的价格,例如0.012英镑(购买数量为000的产品)

我的大多数产品都是“普通”产品,小数点后两位

WooCommerce中有一个函数允许小数点后3位-很好。也是一个删除尾随零的函数,但如果是整数,则会删除尾随零,例如,10.00英镑变为10英镑

当95%的“普通”价格产品开始显示10.000英镑或5.230英镑时,我的问题就出现了

简而言之,我正在寻找一种删除尾随零的方法,但只在小数点后3位

留存-0.012英镑 删除价格(如10.00英镑或5.23英镑)的任何第三位小数点0

有人有好的解决办法吗


谢谢

为什么不做这样的事呢↓ ?

$numberAsString = number_format($yourUglyNumber, 2, '.', ' ');


如果您将数字作为带货币符号的字符串获取,则可以首先过滤掉:

$moneyString = "£300.4578525";

// remove all non-numeric and cast to number
$moneyNum = preg_replace("/[^0-9.]/", "", $moneyString) + 0;

// format
$formatted = number_format($moneyNum, 2, '.', ' ');

// add the money symbol if you want
$formatted = '£' + $formatted.

为什么不就这样↓ ?

$numberAsString = number_format($yourUglyNumber, 2, '.', ' ');


如果您将数字作为带货币符号的字符串获取,则可以首先过滤掉:

$moneyString = "£300.4578525";

// remove all non-numeric and cast to number
$moneyNum = preg_replace("/[^0-9.]/", "", $moneyString) + 0;

// format
$formatted = number_format($moneyNum, 2, '.', ' ');

// add the money symbol if you want
$formatted = '£' + $formatted.

如果要使用正则表达式,可以将其与

 (?<=\d{2})(0+)$

 preg_replace("/(?<=\d{2})(0+)$/", "", $price_string)

如果要使用正则表达式,可以将其与

 (?<=\d{2})(0+)$

 preg_replace("/(?<=\d{2})(0+)$/", "", $price_string)

if-else语句可能会起作用,除非您的价格也像10.001:

$price='0.001';
如果($price<1){
//别兜圈子
}否则{
$price=number\u格式($price,2);
}
或者只是

$price=($price<1)$价格:数字_格式($price,2);

除非您的价格也像10.001:

$price='0.001';
如果($price<1){
//别兜圈子
}否则{
$price=number\u格式($price,2);
}
或者只是

$price=($price<1)$价格:数字_格式($price,2);

这太完美了谢谢你,我不能作为新用户投票,但我使用了preg_replace(“/(?@user2646560,你不能投票,但你可以点击复选标记接受这个答案✔ (继续,点击它!)这太完美了谢谢,我不能作为新用户投票,但我使用了preg_替换(“/(?@user2646560,你不能投票,但你可以点击复选标记接受这个答案✔ (继续,点击它!)。