【问题标题】:Changing Doubles To Ints将双打更改为整数
【发布时间】:2015-12-01 03:14:04
【问题描述】:

我正在为我的计算机科学入门课做家庭作业,我们正在输入基本命令以获取饮用某种能量饮料的人的百分比。我们使用 JOptionPane 制作文本框,您可以输入人数,计算机有设定的百分比来获取输出。我的问题是我将变量设置为双精度数,而我的答案是很长的小数。我想将答案转换为整数,以便获得整数。我试图通过强制转换来做到这一点,但我不断收到错误消息“EnergyDrink.java:14: error: variable citrusEnergyDrinkers may not have been initialized”。我能做什么?

【问题讨论】:

  • 你能贴出你试过的代码吗?
  • 请发布您的代码听起来这不是强制转换问题,而是我的初始化问题
  • 导入 javax.swing.JOptionPane;公共类 EnergyDrink { public static void main(String[] args) { String amountOfPeople; double amountOfPeopleFinal;双倍百分比WhoPurchaseEnergyDrinks= .14;双 PercentageWhoPreferCitrusDrink= .64;双倍能量饮用者;双柑橘能源饮用者; int energyDrinkersFinal = (int) energyDrinkers; int citrusEnergyDrinkersFinal = (int) citrusEnergyDrinkers; amountOfPeople= JOptionPane.showInputDialog("调查了多少人?"); amountOfPeopleFinal= Double.parseDouble(amountOfPeople);
  • energyDrinkers= amountOfPeopleFinal* percentWhoPurchaseEnergyDrinks; citrusEnergyDrinkers=energyDrinkers* PercentageWhoPreferCitrusDrink; JOptionPane.showMessageDialog(null, "会购买能量饮料的人数是"+ energyDrinkers+ "会购买柑橘类饮料的人数是"+ citrusEnergyDrinkers); } }

标签: java casting int double


【解决方案1】:

您可以将 double 乘以 100,然后转换为 int:

double d = .77583495;
int perc = (int) Math.round( d );

我不喜欢那样投射,但它确实有效。

祝你好运。

【讨论】:

    【解决方案2】:

    没有代码这是无法解决的。该错误不是由于转换有任何问题,而是正如编译器错误所说:

    变量 citrusEnergyDrinkers 可能尚未初始化

    这意味着变量在您尝试转换它时可能不包含值,这会导致未定义的行为,java-designers 不允许这样做是有原因的。
    问题在于错误消息告诉:citrusEnergyDrinkers 在某个 try-catch-block 或仅在特定条件下运行的块(如 if)中获取其值。解决此问题的一种方法是简单地将 citrusEnergyDrinkers 初始化为 0:
    double citrusEnergyDrinkers = 0;
    请注意,这可能会产生不正确的结果,具体取决于未设置值时发生的情况,以防在设置值之前未输入/中断上述代码块。

    对于转换:
    Math.round(citrusEnergyDrinkers) 很可能比简单转换为int 更可取,因为double 在大多数情况下由于其存储在内存中的方式而有些不精确,而round 将实际上是四舍五入的值,而铸件只会去除摩擦部分。例如:

    (int) 0.75 //produces 0
    Math.round(0.75) //produces 1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-15
      • 2018-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多