こんにちは私はnewbeですし、税務目的で簡単なコードを書いています。これまで私は小さなコードを書いていましたが、私は関数を使用すると問題があると思われますtaxable_i($i)
$taxable_i
NIL
私はすべてを試しました。 機能を介して$taxable_i
NIL
を作成しようとすると、私はそれをやらせません。それは私に£13900
の結果を示しています。私は、プログラムが$taxable_i
ではなく、税金をエコーしていると思う。 上記を一括して削除すると、納税額はマイナスの-£2199.80
になります。 $taxable_i <personal_allowance
は答えがゼロだが結果はゼロではないということに注意してください。なぜ、私が間違っているのか分かりません。 どのようなヘルプも大歓迎です。php否定的な答えを避ける方法
<?php
// VAT
define("vat_threshold",83000);
define("vat_rate",0.2);
// RELIEFS
define("personal_allowance",11000);
//RATES
define("starting_rate",0);
define("basic_rate",0.2);
define("higher_rate",0.4);
define("add_rate",0.45);
define("divs_ord_rate",0.075);
define("divs_uuper_rate",0.325);
define("divs_add_rate",0.381);
// THRESHOLDS
define("savings_income_band",5000);
define("basic_rate_band",32000);
define("higher_rate_band",150000);
define("divs_allowance",5000);
define ("band_0",0);
define("band_1",11000);
define("band_2",32000);
define("band_3",100000);
define("band_4",122000);
define("band_5",150000);
function taxable_i($i) {
if ($i <= band_1) {
$taxable_i = $i * 0;
return $taxable_i;
}
if ($i <= band_3) {
$taxable_i = $i - personal_allowance;
return $taxable_i;
}
if ($i >band_3 && $i <=band_4) {
$taxable_i = $i - (personal_allowance-($i - band_3)/2);
return $taxable_i;
}
if ($i > band_4) {
$taxable_i = $i;
return $taxable_i;
}
}
$starting_income = $i = 1;
echo $i;
$taxable_i = taxable_i($i);
echo $taxable_i;
switch ($taxable_i) {
case ($taxable_i > band_5):
$diff = $taxable_i - band_5;
$tax5 = $diff * add_rate;
$taxable_i = band_5;
$diff = $taxable_i - band_2;
$tax4 = $diff * higher_rate;
$taxable_i = band_2;
$tax3 = $taxable_i * basic_rate;
$tax_payable = $tax5 + $tax4 + $tax3;
break;
case ($taxable_i > band_2 && $taxable_i <= band_5):
$diff = $taxable_i - band_2;
$tax4 = $diff * higher_rate;
$taxable_i = band_2;
$tax3 = $taxable_i * basic_rate;
$tax_payable = $tax4 + $tax3;
break;
case ($taxable_i < band_2):
$tax = $taxable_i * basic_rate;
$tax_payable = $tax;
break;
default:
$taxable_i <= band_0;
$tax_payable == 0;
break;
}
echo $tax_payable;
?>
StackOverflowのは雑用を見つけるコードのデバッグやエラーのためのものではありません。
はと
switch
ブロックを交換してください。この例を、問題を示すために必要な最小限のコード例に減らし、達成しようとしていること(そしてその理由)を具体的に示し、実際の動作とは対照的に予想されるものを指摘してください。 – k0pernikus私はそれも有罪だが... ...いいえ、税金プログラムを書くことは、あなたがそれらをするのを助けることはありません。税金を払う唯一の方法は、椅子にあなたの残念なお尻を座らせることです:) –
こんにちはフェリックス - 残念なことに、私は生活のために何をしています。私は税務顧問です。コーディングは私の趣味です。私は私のウェブサイトwww.sipheraccounting.comに元々はif文を使ってExcelで書かれた税計算機を持っています。私はいつもプログラミングを学びたいと思っていました。私が書いたことを書くのに30日ほどかかりました。うまくいけば私はそれも働くようになるでしょう。 –