我很抱歉这个奇怪的标题,我真的不知道如何描述它。基本上我有一个代码,一旦调用了if语句,它就改变了整数的值, taxrate 。我认为它有效,但是一旦我尝试将其调用到代码的另一部分的JTextField中,它就会显示为0. IF语句如下:
if (taxable >= 1 && taxable <= 9075){
taxrate = (int) (taxable * .10);
} else if (taxable >= 9076 && taxable <= 36900) {
taxrate = (int) (taxable * .15 + 908);
} else if (taxable >= 36901 && taxable <= 89350) {
taxrate = (int) (taxable * .25 + 5082);
} else if (taxable >= 89351 && taxable <= 186350){
taxrate = (int) (taxable * .28 + 18195);
} else if (taxable >= 186351 && taxable <= 405100){
taxrate = (int) (taxable * .33 + 45355);
} else if (taxable >= 405101 && taxable <= 406750) {
taxrate = (int) (taxable * .35 + 45883);
} else if (taxable >= 406751) {
taxrate = (int) (taxable * .396);
}
taxable 由用户定义,在用户输入之前没有定义的值。
答案 0 :(得分:2)
0到10之间的任何应税值(不包括10)将为您提供0的税率,代码可以完美运行。 如果不是这种情况,请确保在进行此比较之前实际分配了您的应税值。程序可能永远不会到达if语句中的代码块。
答案 1 :(得分:0)
首先,您需要清理代码
if (taxable >= 1 && taxable <= 9075){
taxrate = (taxable * .10);
} else if (taxable >= 9076 && taxable <= 36900) {
taxrate = (taxable * .15 + 908);
} else if (taxable >= 36901 && taxable <= 89350) {
taxrate = (taxable * .25 + 5082);
} else if (taxable >= 89351 && taxable <= 186350){
taxrate = (taxable * .28 + 18195);
} else if (taxable >= 186351 && taxable <= 405100){
taxrate = (taxable * .33 + 45355);
} else if (taxable >= 405101 && taxable <= 406750) {
taxrate = (taxable * .35 + 45883);
} else if (taxable >= 406751) {
taxrate = (taxable * .396);
}
如果将它们转换为INT,有小数点是什么意思?整数不能有小数位。如果你想让Decimals使用Double - 否则就不要使用小数。
还要确保在执行if块之前初始化taxable
即
private double taxable = "some value";