2011-09-06 16 views
11

データベースに格納されている10進数の数があり、PHPを使用して2つの数値の間の増加率(または減少率)を計算する必要があります。2つの10進数の間の増加率を計算する

番号のうちの2つの例がある:私はどこか、次のコードを発見し0.7628%

の増加となり111.0516及び111.9052。残念ながら、小数で動作するように見えるし、それらを切り上げていません:

$num_amount = 111.0516; 
$num_total = 111.9052; 

function percent($num_amount, $num_total) { 
$count1 = $num_amount/$num_total; 
$count2 = $count1 * 100; 
$count = number_format($count2, 0); 
echo $count; 
} 

percent($num_amount, $num_total); 

は、理想的には私は0.77パーセントの答えを与えて小数点以下2桁のパーセンテージを計算する必要があります。

これはPHPでも可能ですか?私は困惑している。私のPHPや数学のスキルはそれを把握するのに十分です。

答えて

8

同じあなたのコードの残りの部分を維持しながらジャスト

$count = number_format($count2, 2); 

代わりの

$count = number_format($count2, 0); 

を書きます。

+0

私はそのようなダンボールです。このサイトは今私にかなり多くの時間を節約しました。ありがとうAndreyKo – Turnip

22

いくつかの数学を試してみましょう。

あなたは4ユーロを持っていると私はOUに2ユーロを与え、あなたは6ユーロを持っている場合、増加は2/6である

あなたがxユーロを持っていると私はあなたにdeltaユーロを与える場合は、x + delta = yユーロ

を持っています

私たちは、だからあなたの関数になる

percentage_increase := (delta/y) * 100 
        := ((y - x)/y) * 100 
        := (1 - (x/y)) * 100 

を書き込むことができます。

function percent($num_amount, $num_total) { 
    echo number_format((1 - $num_amount/$num_total) * 100, 2); // yields 0.76 
} 

Codepad example

+0

それは完璧な答えはなぜそれをマークしていない場合は?あなたの質問を繰り返すことができず、それが完璧なものであることを示すのに役立ちます:完璧! – Laci

+0

これは '1 -'(1 - $ num_amount/$ num_total)を意味しますか?あなたは私にその元の式を教えてください。 –

関連する問題