【问题标题】:Changed integer value doesn't show up in other parts of the code?更改的整数值不会显示在代码的其他部分?
【发布时间】:2014-03-31 19:17:41
【问题描述】:

我很抱歉这个奇怪的标题,我真的不知道如何描述它。基本上我有一个代码,一旦调用 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 小于 9075,并且 0 * 0.10 仍然是 0(使用你的演员表,任何数字 >= 0 和
  • @ElliottFrisch 即使我输入 9074 也会发生
  • @engz 如果你输入 9076?
  • @ElliottFrisch 我只是展示了部分代码,我包含了完整的 if 语句。我还做了一点修改,使其高于/等于 1。

标签: java if-statement int


【解决方案1】:

在 0 到 10(不包括 10)之间的任何应税值都将为您提供 0 的税率,并且代码可以完美运行。 如果这不是您的情况,请确保在进行此比较之前实际分配了您的应税价值。程序可能永远不会真正到达 if 语句中的代码块。

【讨论】:

  • 是的,我刚刚发现了我的错误。它放错了地方。感谢您向我指出这一点,这是一个愚蠢的错误。 :)
【解决方案2】:

首先你需要清理你的代码

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";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-14
    • 1970-01-01
    • 1970-01-01
    • 2021-03-31
    • 2021-12-09
    • 2018-06-07
    • 2010-10-01
    相关资源
    最近更新 更多