关于double和int

时间:2017-08-03 06:48:17

标签: java

我有两个变量:

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的新手

4 个答案:

答案 0 :(得分:5)

i1 = (int) ((double)i1/100);

由于i1integer,无论右侧的结果是什么,它都会转换/舍入为整数。因此,您的结果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"

互联网上有很多关于这个主题的精彩教程,考虑选择一些并开始学习。 ;)

干杯