java中的货币转换器
我目前正在学习如何使用java,每次我尝试输入这些乱七八糟的代码时,它都会说: 不兼容类型:可能从double转换为int 我只是想知道为什么会发生这个错误,以及如何修复它java中的货币转换器,java,javac,Java,Javac,我目前正在学习如何使用java,每次我尝试输入这些乱七八糟的代码时,它都会说: 不兼容类型:可能从double转换为int 我只是想知道为什么会发生这个错误,以及如何修复它 public class currencycoverter { public static void main (String[] args) { int suma , sumb ,sumc , answera , answerb , answerc , a , b , c
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) ;
}
}
int
只能保存整数值。因此,在代码中,所有分数都被丢弃。您的编译器警告您这一点:非常有用
(还要注意,如果除法的两个参数都是int
s,则除法将被截断为整数值,而与接收该值的类型无关。)
一个简单的解决方法是将int
替换为double
,它可以保存十进制数量
但对于货币价值而言,这可能是一个糟糕的选择(研究浮点精度)。请考虑使用货币类型。你应该阅读一个整数是什么。java不是C:在你需要的地方声明变量,例如:代码>双SUMA=1;<代码>和
双suma=a*100/b代码>。答案变量也是不必要的,因为它们的值与总和相同。