2012-09-27 19 views
2

我做了一個計數器,我使用PHP和幾乎一切都很好,但我發現它的一個小錯誤。我的PHP代碼沒有得到更正

我在櫃檯前兩步就行了,那就是$bid和​​。

我最後的結果$pay應該是:8138 + 814 + 448 = 9400,但它給我$9,399

我的輸出是:

Value $8,138 bid $814 tax $448 You Pay $9,399 
Value $8,952 bid $895 tax $492 You Pay $10,339 
Value $9,847 bid $985 tax $542 You Pay $11,373 

這裏是我的PHP提前

<?php 
$i = 0; 
$v = 8138; // value : 8138 
do { 
    $i++; 
    $bid = $v/10;  // output : $814 
    $ftax = $v + $bid; 
    $stax = $ftax/20; // output : tax $448 
    $pay = $v + $bid + $stax; // 8138 + 814 + 448 = 9400 
    echo "Value $" . number_format($v) . " bid $" . number_format($bid) . " tax $" . number_format($stax) . " You Pay $" . number_format($pay) . "<br />"; 
    $v = $v * 1.1; 
} while ($i <= 2); 
?> 

感謝: )

+0

我認爲你正在失去沿途有一些小數.... – thatidiotguy

+0

哈啊,我會盡我的計算器 –

+1

呀$競價,它和$ STAX小數。如果您不想使用小數,則需要將它們向上或向下舍入。 – Pitchinnate

回答

4

更改回聲線不降小數:

echo "Value $" . $v . " bid $" . $bid . " tax $" . $stax . " You Pay $" . $pay . "<br />"; 

價值$ 8138出價$ 813.8稅$ 447.59您支付$ 9399.39
價值$ 8951.8出價$ 895.18稅$ 492.349您支付$ 10339.329
價值$ 9846.98出價$ 984.698稅$ 541.5839你支付$ 11373.2619

所以8138 + 813.8 + 447.59 = 9399.39,這輪下跌到9399.

在另一方面,如果你立即輪到813.8輪到814輪和447.59輪輪到448輪,但在起步之前,您的計算剛剛增加了0.61,這顯然會導致更高的數字(9400)。

這就是爲什麼數學和科學教師告訴你不要輪到最後,因爲每次你這樣做,你的答案就會變得不準確。

+0

感謝Brendan Long對我的幫助:)我將不得不圍繞他們 –

+0

@DeepakKumar先不要讓他們先走! 9399的答案是**正確**!這個答案只是解釋爲什麼它是正確的。你不需要改變任何東西(除非你認爲你的用戶會感到困惑,否則顯示小數除外)。 –

+0

我想要它9400,所以必須把它們圍起來。根據我的需要它必須是9400 –

2

沒有鑄造/小數是你的問題。 har har har

3

如果您不想使用小數,請使用round()四捨五入所有除法計算。此外,乘以小數。看到它在行動here

$i = 0; 
$v = 8138; // value : 8138 
do { 
$i++; 
$bid = round($v/10);  // output : $814 
$ftax = $v + $bid; 
$stax = round($ftax/20); // output : tax $448 
$pay = $v + $bid + $stax; // 8138 + 814 + 448 = 9400 
echo "Value $" . number_format($v) . " bid $" . number_format($bid) . " tax $" .  number_format($stax) . " You Pay $" . number_format($pay) . "<br />"; 
$v = round($v * 1.1); 
+0

謝謝coder1984 :) –

+0

不客氣:) –

相關問題