价格乘以十进制数

时间:2017-10-19 15:34:30

标签: php

我是PHP的新手,对于一个woocommerce,我试图将价格乘以2。

$priceOriginal = WC()->cart->get_cart_subtotal(); // return 450,00€
$priceNoCur  = preg_replace( '/&.*?;/', '', $priceOriginal );  // return 450,00
$priceNoCurDot = preg_replace( '/,/', '.', $priceNoCur);  // return 450.00
$priceFinalDot = floatval($priceNoCurDot) * 2;
echo $priceFinalDot;   // return 0

我找到了如何删除de euro标志并用点来改变昏迷,但当我乘以2时,我的结果为0 ......为什么!?

我找到另一种方式来调用价格:$priceOriginal = WC()->cart->total;然后我可以将此数字乘以正常计算。

1 个答案:

答案 0 :(得分:2)

你的priceOriginal不是什么告诉,如果我认为它是“450,00€”之类的东西,那么当你将900加倍时,我必须返回2。在进行任何进一步操作之前尝试var_dump($priceOriginal);

$priceOriginal = "450,00€";
$priceNoCur  = preg_replace( '/&.*?;/', '', $priceOriginal );  // return 450,00
$priceNoCurDot = preg_replace( '/,/', '.', $priceNoCur);  // return 450.00
$priceFinalDot = floatval($priceNoCurDot) * 2;
echo $priceFinalDot;   // returns 900

用于调试:

$priceOriginal = WC()->cart->get_cart_subtotal();
var_dump($priceOriginal); //see what you get 

根据您的评论,如果它正在返回string(119) "450,00€",那么您应该在执行进一步操作之前修剪$priceOriginal变量$priceOriginal = trim(WC()->cart->get_cart_subtotal());,因为它可能有一些额外的空格字符。