我有很大的时间尝试将字符串转换为整数或乘以两个整数。我无法将字符串转换为整数,因为它导致我成为一个布尔值(当我使用var_dump时)。我可以在字符串中转换另一个整数,但我无法将其乘以。
我有这个:
<? $fees=$commerce->cart->get_total();
$payfee = str_replace(' €', '', $fees);
$payfee = str_replace(',','', $payfee); //this is the string
$fee = 0.025;
$paypal = $payfee * $fee; //this thing is not working
?>
我尝试将payfee转换为整数,但仍无法使其工作。之前我做过类似的事情并且运作良好,但这次不是。
任何帮助将不胜感激。
P.S感谢整个stackoverflow.com社区,它曾多次帮助过我。
答案 0 :(得分:5)
OP正在运行WooCommerce,他的
$commerce->cart->get_total();
函数响应输出,例如<span class="amount">560 €</span>
(560€) 而他正在问如何将其转换为数字,以便他可以收取费用 (2.5%)金额。
首先,这里的问题是get_total()
函数以字符串响应。
修复此字符串的正确方法是一个简单的示例,例如
<?php
$totalAmountString = $commerce->cart->get_total(); //<span class="amount">560 €</span>
$totalAmountString = strip_tags($totalAmountString); //get rid of the span - we're left with "560 €"
$totalAmountString = str_replace(array(" €", ","), "", $totalAmountString);
$totalAmountFloat = (float)$totalAmountString;
$fee = 0.025;
$feeForThisAmount = $totalAmountFloat * $fee;
var_dump($feeForThisAmount);
$totalAmountWithFee = $totalAmountFloat + $feeForThisAmount;
var_dump($totalAmountWithFee);
?>
但是,根据Woo Commerce API Documentation,您应该可以使用$commerce->cart->total
获取数字的浮点数,因此可能的解决方案也可以使用(同样,我对WooCommerce一无所知),将是以下内容:
<?php
$totalAmountFloat = $commerce->cart->total;
$fee = 0.025;
$feeForThisAmount = $totalAmountFloat * $fee;
var_dump($feeForThisAmount);
$totalAmountWithFee = $totalAmountFloat + $feeForThisAmount;
var_dump($totalAmountWithFee);
?>
修改强> 的
根据您的最新数据转储,问题是您正在使用
$paypal_fees=$woocommerce->cart->get_total() * 0.025;
你应该在哪里使用
$paypal_fees=$woocommerce->cart->total * 0.025;
当->get_total()
收到一个字符串,->total
收到一个浮点数。
答案 1 :(得分:3)
答案 2 :(得分:2)
使用intval()函数将字符串转换为整数
答案 3 :(得分:2)
使用类型转换,如
$integer = (int)$myString;
然后你可以把它转换成一个整数,它很容易成倍增加
答案 4 :(得分:0)
从您的基于小学技术的算法发布到here。在这种情况下,您无需将字符串转换为整数