我目前正在学习如何使用java,每当我尝试输入这些代码时,它会说:
不兼容的类型:从double到int的可能有损转换
我只是想知道为什么会出现这个错误,我该如何修复它。
public class currencycoverter {
public static void main (String[] args) {
int suma , sumb ,sumc , answera , answerb , answerc , a , b , c , d ;
a = 1.00 ;
b = 0.697443 ;
c = 1.08901 ;
d = 135.090 ;
suma = a * 100 / b ;
sumb = a * 100 / c ;
sumc = a * 100 / d ;
answera = suma ;
answerb = sumb ;
answerc = sumc ;
System.out.println ("euro 100 will buy ="+ answera) ;
System.out.println ("euro 100 will buy ="+ answerb) ;
System.out.println ("euro 100 will buy ="+ answerc) ;
}
}
答案 0 :(得分:4)
int
只能保存整数值。因此,在您的代码中,所有分数都将被丢弃。您的编译器正在警告您:帮助。
(另请注意,如果除法的两个参数都是int
s,则除法将被截断为接收值的类型的 的整数值。)
一个简单的解决方法是将int
替换为double
,其中包含十进制数量。
但对于货币价值而言,这可能是一个糟糕的选择(研究浮点精度)。请考虑使用货币类型。