英語のお金の形式で機能させるためにパーセントカウンター関数を取得するのに問題があります
function calc_proc($price, $savings) {
$old_price = $price + $savings;
return (number_format($savings / ($old_price/100)));
}
カンマのために私は悪い値を取得しています
英語のお金の形式は次のようなものですか:253,17?
はいの場合は、次のようにします。
str_replace(',', '.', $value);
その後、あなたは安全です。
まず、財務計算で文字列を使用する必要はありませんが、それでも使用する必要がある場合は、コンマをドットに置き換える必要があります。例えば、
$a = '1,5';
$b = '2,1';
echo $a + $b; //result 3
// you can avoid this, by replacing comma:
$a = str_replace(',', '.', $a);
//same for $b
別の解決策はロケールを設定することですが、その後はドットに問題が発生します。
関数では、次のようになります。
function calc_proc($price, $savings) {
$price = str_replace(',', '.', $price);
$savings = str_replace(',', '.', $savings);
$old_price = (float)$price + (float)$savings;
return (number_format($savings / ($old_price/100)));
}
function percent($price, $savings) {
$count1 = str_replace(',', '.', $price)/ $savings;
$count2 = $count1 * 100;
$count = number_format($count2, 0);
return $count;
}
setlocale(constant, location)
スクリプトの最初から試してください。あなたの場合:
setlocale(LC_ALL,"En-Us");
パラメーターのないPHPnumber_format()関数は、コンマ付きの英語形式を返します。代わりに以下を使用する必要があります。
return round($savings / ($old_price/100), 0);
$old_priceが0にならないようにしてください