我正在尝试用Java做一些计算, 但由于某种原因,1或2行代码中的简单计算给出了错误的答案, 而另一方面,如果我分3步完成它,它可以完美地工作。
我知道在更多步骤中做某事并不是那么糟糕, 但为什么要使用额外的文字,如果可以缩短?
如果我的数学错误会有人给我一个指针吗?
这是1行代码
percent1 = (((totaloutput1Int - Total1Int) / totaloutput1Int) * 100);
also = (((2232 - 1590) / 2232) * 100)
这是可行的多步骤代码。
percent1step1 = (totaloutput1Int - Total1Int);
percent1step2 = ((percent1step1 / totaloutput1Int)* 100);
percent1Tv.setText(String.valueOf(percent1step2));
答案 0 :(得分:5)
将totaloutput1Int
和Total1Int
从int
更改为double
,一切正常。
在第一种方法中,int / int导致四舍五入值。这导致了不同的结果。
答案 1 :(得分:1)
您需要将一些变量转换为double才能获得准确的答案。 int
/ int
将为您提供int
Take a look at this question
答案 2 :(得分:1)
因此,这是标记为Android的,我假设您使用的是Android Studio。其中一个很棒的功能是内嵌(也可以在大多数现代IDE中使用)。
拿这个:
float percent1step1 = (totaloutput1Int - Total1Int);
float percent1step2 = ((percent1step1 / totaloutput1Int)* 100);
如果您右键单击percent1step1
并选择“refactor-> inline”,android studio将会这样:
float percent1step2 = ((((float)(totaloutput1Int - Total1Int)) / totaloutput1Int)* 100);
因此它向您展示了如何在没有多行的情况下实现内联。在这种情况下,结果会将int
从减法转换为float
。