java中的货币转换器

时间:2016-01-04 15:14:44

标签: java javac

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

1 个答案:

答案 0 :(得分:4)

int只能保存整数值。因此,在您的代码中,所有分数都将被丢弃。您的编译器正在警告您:帮助。

(另请注意,如果除法的两个参数都是int s,则除法将被截断为接收值的类型的 的整数值。)

一个简单的解决方法是将int替换为double,其中包含十进制数量。

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