将字符串转换为整数并乘以两个整数

时间:2012-09-25 09:36:29

标签: php string int woocommerce

我有很大的时间尝试将字符串转换为整数或乘以两个整数。我无法将字符串转换为整数,因为它导致我成为一个布尔值(当我使用var_dump时)。我可以在字符串中转换另一个整数,但我无法将其乘以。

我有这个:

    <? $fees=$commerce->cart->get_total(); 
    $payfee = str_replace('&nbsp;&euro;', '', $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社区,它曾多次帮助过我。

5 个答案:

答案 0 :(得分:5)

  

OP正在运行WooCommerce,他的$commerce->cart->get_total();   函数响应输出,例如<span class="amount">560&nbsp;&euro;</span>(560€)   而他正在问如何将其转换为数字,以便他可以收取费用   (2.5%)金额。

首先,这里的问题是get_total()函数以字符串响应。

修复此字符串的正确方法是一个简单的示例,例如

<?php
    $totalAmountString = $commerce->cart->get_total(); //<span class="amount">560&nbsp;&euro;</span>
    $totalAmountString = strip_tags($totalAmountString); //get rid of the span - we're left with "560&nbsp;&euro;"
    $totalAmountString = str_replace(array("&nbsp;&euro;", ","), "", $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)

试试这个

$integer =(int)$string;

LIve example

使用var_dump()正确

enter image description here

check this link

答案 2 :(得分:2)

使用intval()函数将字符串转换为整数

intval

答案 3 :(得分:2)

使用类型转换,如

$integer = (int)$myString;

然后你可以把它转换成一个整数,它很容易成倍增加

答案 4 :(得分:0)

从您的基于小学技术的算法发布到here。在这种情况下,您无需将字符串转换为整数