JAVA计算器,小数相乘的错误~是double类型的问题?我怎么改才行?3*1.3都出错等于3.9000000000000004// public double calculator(){// switch(c){// case 0:f=g;break;// case 1:f=b+g;break;// case 2:f=b-g;break;// case 3:f=b*g;break;//

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/02 01:45:04

JAVA计算器,小数相乘的错误~是double类型的问题?我怎么改才行?3*1.3都出错等于3.9000000000000004// public double calculator(){// switch(c){// case 0:f=g;break;// case 1:f=b+g;break;// case 2:f=b-g;break;// case 3:f=b*g;break;//
JAVA计算器,小数相乘的错误~是double类型的问题?我怎么改才行?3*1.3都出错等于3.9000000000000004
// public double calculator(){
// switch(c){
// case 0:f=g;break;
// case 1:f=b+g;break;
// case 2:f=b-g;break;
// case 3:f=b*g;break;
// case 4:f=b/g;break;
// }
//
// b=f;
// c=0;
//
// return f;
// }
//
// 减
fuhao[1].setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
if (str = "") {
if (vi == fuhao[0] || vi == fuhao[1] || vi == fuhao[2]
|| vi == fuhao[3]) {
c = 2;
}
else {
g = Double.parseDouble(str);
calculator();
str = "" + f;
et.setText(str);
c = 2;
flag = 1;
vi = v;
}
}
}
});

JAVA计算器,小数相乘的错误~是double类型的问题?我怎么改才行?3*1.3都出错等于3.9000000000000004// public double calculator(){// switch(c){// case 0:f=g;break;// case 1:f=b+g;break;// case 2:f=b-g;break;// case 3:f=b*g;break;//
是Double导致的,运算最好使用BigDecimal来计算
给你个简单加减乘除的例子
public static BigDecimal getBigDecimal(double num){
return new BigDecimal(num);
}
public static double add(double num1,double num2){
BigDecimal big1 = getBigDecimal(num1);
BigDecimal big2 = getBigDecimal(num2);
return big1.add(big2).doubleValue();
}
public static double subtract(double num1,double num2){
BigDecimal big1 = getBigDecimal(num1);
BigDecimal big2 = getBigDecimal(num2);
return big1.subtract(big2).doubleValue();
}
public static double multiply(double num1,double num2){
BigDecimal big1 = getBigDecimal(num1);
BigDecimal big2 = getBigDecimal(num2);
return big1.multiply(big2).doubleValue();
}
public static double divide(double num1,double num2){
BigDecimal big1 = getBigDecimal(num1);
BigDecimal big2 = getBigDecimal(num2);
return big1.divide(big2,1,BigDecimal.ROUND_HALF_UP).doubleValue();
}

JAVA计算器,小数相乘的错误~是double类型的问题?我怎么改才行?3*1.3都出错等于3.9000000000000004// public double calculator(){// switch(c){// case 0:f=g;break;// case 1:f=b+g;break;// case 2:f=b-g;break;// case 3:f=b*g;break;// Java编写计算器的流程图 采用java语言编写一个计算器,该计算器能对正数、负数(这里的正数、负数包括小数)进行加、减、乘、除运 科学计算器运算错误 怎么调试?我的科学计算器算出来的全是无小数点数 好像是近似值 小数与整数相乘,积中的小数位数与( )的小数位数相同.呵呵,是因数 有个舞曲特好听!高潮是mi mi ruai dou dou ruai dou xi ,dou dou xi la dou xi dou xi la so现在街上很多房这个的! 两个小数相乘,其乘积四舍五入后是39.0.这两个小数都是一位小数,两个小数的各位上 java.lang.NullPointerException错误是什么意思安卓APP的错误提示是java.lang.NullPointerException,这是一个什么错误呢?更多信息见图.谢谢java.lang.NullPointerException at goldendawn.getimei.ui.MainActivity$13.onClick(MainAct 两个小数相乘 积一定是小数吗 有100分的把握在回答啊! 两个纯小数相乘的积一定是(    )小数,例如 一个两位小数和一个一位小数相乘,先按整数乘法算出的积是20,这两个小数相乘的正确的积是? 两个因数相乘的积是三位小数,则两个因数的小数位数之和一定是三位小数. 在java中,下面选项中关于java.lang.Object 类的说法错误的是( )在java中,下面选项中关于java.lang.Object 类的说法错误的是( )A、在java中,所有的JAVA类都直接继承了Object 类B、假定在定义一个类时,没有 两个小数相乘,其乘积四舍五入后是39.1.这两个小数都是一位小数,两个小数的个位上都是6,这两个小数的乘 卡西欧计算器fx82es如何得到答案是小数,并且不要设定保留的小数后面的位数 “两个小数相乘,积一定是小数.”这句话对吗? 两个小数相乘,积一定是小数.这句话对吗? 5800计算器 怎么把计算出来的结果怎么是分数呀,为什么不是小数 ,怎么把分数变成小数?