我是这个PHP的新手,想要一些建议,为什么我的计算不起作用。
$income = number_format($_POST[income], 2);
$year = $_POST[year];
if ($income >= 0 && $income <= 18200){
$taxo = number_format(0,2);}
elseif ($income >= 18201 && $income <= 37000){
$taxo = number_format($income * 0.19 ,2);
}
以及我的HTML文件中的某个地方
tax on income
$
echo $taxo;
然而,当我运行文件时,$ taxo是alwasy 0(?)。任何人都可以告诉我哪里弄错了?
提前致谢
艾伯特
答案 0 :(得分:4)
number_format()
返回一个字符串,您正尝试对其进行整数比较。 e.g。
$income = '12345678';
$income = number_Format($income, 2); // 12,345,678.00
if ('12,345,678.00' >= 0) && ('12,345,678.00' <= 18200)
PHP会将您的字符串 BACK 转换为整数,然后您最终会执行
if (12 >= 0) && (12 <= 18200)
number_format()
对人类可读输出很有用。当你进行内部比较时,它完全是无用的,因为你正在采取应该是苹果对苹果的比较,并将它们变成橙子对苹果。
答案 1 :(得分:2)
将$_POST[income]
替换为$_POST['income']
,将$_POST[year]
替换为$_POST['year']