java中的货币转换器

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

我目前正在学习如何使用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) ;        
    }
}

int
只能保存整数值。因此,在代码中,所有分数都被丢弃。您的编译器警告您这一点:非常有用

(还要注意,如果除法的两个参数都是
int
s,则除法将被截断为整数值,而与接收该值的类型无关。)

一个简单的解决方法是将
int
替换为
double
,它可以保存十进制数量


但对于货币价值而言,这可能是一个糟糕的选择(研究浮点精度)。请考虑使用货币类型。

你应该阅读一个整数是什么。java不是C:在你需要的地方声明变量,例如:代码>双SUMA=1;<代码>和
双suma=a*100/b。答案变量也是不必要的,因为它们的值与总和相同。