我有两个变量:
double d1 = 15.20;
int i1 = 10;
我想将i1除以100,这样我就可以得到0.1,然后我想加入d1。
以下是我尝试过的事情
i1 = i1/100 result is 0
i1 = (int) ((double)i1/100); result is 0
我尝试了几种相同的东西,但要么我得到结果0或2。
任何人都可以告诉我如何使用w.r.t double和int进行操作。我是java的新手
答案 0 :(得分:5)
i1 = (int) ((double)i1/100);
由于i1
是integer
,无论右侧的结果是什么,它都会转换/舍入为整数。因此,您的结果0.1
会转换回0
。
将其存储在double
中以保留double
结果。
double result = ((double)i1/100);
甚至更好,将任何操作数转换为double
,以告诉结果应该是double
,这样就可以避免完全投射。
double result = i1/100.0;
答案 1 :(得分:1)
请记住,划分整数也会生成一个整数...
如果你想避免强制转换,那么可以将100声明为100.0(文字双精度),该操作会将变量i1提升为double,结果也会生成一个double ... i1 / 100.0;
< / p>
其余的与其他答案类似
double d1 = 15.20;
int i1 = 10;
d1 += i1 / 100.0;
System.out.println(d1);
答案 2 :(得分:1)
int / int导致int。如果你混合类型,那么你有一个dobule。
所以,例如,只需要加倍。无需使公式复杂化:
double result = d1 + i1/100.0;
答案 3 :(得分:1)
你应该阅读关于不同数据类型的教程以及它们之间的关系,以及一般的投射(当你刚开始时它可能真的很混乱,但你会很快学会它;))。 / p>
您可以通过将 i1 的类型更改为 double 来解决您的具体问题,因为整数只能包含整数。
那么如果你这样做:
double d1 = 15.2;
double i1 = 10.;
// short version
d1 += i1 / 100; // a += b is short for a = a + b
System.out.println(d1); //will print "15.3"
// extensive version
i1 = i1 / 100; // assigns the value 0.1 ti i1
d1 = d1 + i1;
System.out.println(d1); //will also print "15.3"
互联网上有很多关于这个主题的精彩教程,考虑选择一些并开始学习。 ;)
干杯