2

文字列を整数に変換するか、2つの整数を乗算するのに苦労しています。文字列を整数に変換できないため、ブール値になります(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

    ?>

ペイフィーを整数に変換しようとしましたが、それでも機能しません。私は以前にこのようなことをしてうまくいきましたが、今回はそうではありませんでした。

どんな助けでもありがたいです。

PSこれまで何度も助けてくれたstackoverflow.comコミュニティ全体に感謝します。

4

5 に答える 5

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ドキュメント$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;

as->get_total()は文字列を->total受け取り、floatを受け取ります。

于 2012-09-25T10:56:48.727 に答える
3

これを試して

$integer =(int)$string;

ライブの例

var_dump()で正しい

ここに画像の説明を入力してください

このリンクを確認してください

于 2012-09-25T09:37:37.083 に答える
2

intval()関数を使用して、文字列を整数に変換します

intval

于 2012-09-25T09:39:10.250 に答える
2

次のような型キャストを使用します

$integer = (int)$myString;

それからあなたはそれを整数に変換することができます、そしてそれは掛け算が簡単になります

于 2012-09-25T09:41:45.427 に答える
0

あなたの小学校の技術ベースのアルゴリズムからここに投稿されています。この場合、文字列を整数に変換する必要はありません

于 2018-12-07T16:10:04.540 に答える