资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

分数四则运算java代码 分数四则运算java代码是什么

求教我这个java分数四则运算,num1怎么随着运算而变化的,求改正。还有怎么把符号带入运算?

(1)你做加减 乘除时均忘记符号位了,仅处理了符号全是正的情形。

在霍州等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站制作、成都网站设计 网站设计制作按需定制开发,公司网站建设,企业网站建设,品牌网站制作,成都营销网站建设,成都外贸网站制作,霍州网站建设费用合理。

建议不需要符号位,将正负号放到分子中,化简时保证分母是正的即可

如分数-3/4 a=-3 b=4

否则加减法均需要分4种情况处理,乘除法也需要判断同符号不同符号两种情况处理

(2)加减 乘除的结果现在保留在当前分数对象中,若不想修改当前分数,

可将方法中增加一个临时分数对象

如加法

public String add(CNumber oper)

{

CNumber result=new CNumber();

result.a=this.a*oper.b+oper.a*this.b;

result.b=this.b*oper.b;

return result.toString();

}

不过建议加减 乘除的结果不是返回字符串对象,而是返回分数对象,以方便多个分数运算。

(3)化简分数算法过于麻烦,找公约数可用辗转相除法具体代码如下

public void simpleCNumber() //化简结果仍保存在当前对象中,不需要另建对象

{

long m=(long)Math.abs(a), n=b , r ;

if(a==0) {b=1;return;}

while r!=0

{

m=n; n=r; r=m%n;

}

a/=n; b/=n;

}

编写一个实现四则运算的JAVA程序

import java.text.DecimalFormat;

import java.util.Scanner;

public class Zhidao {

public static void main(String[] args) {

String condition = "";

Zhidao zhidao = new Zhidao();

do{

Scanner scanner = new Scanner(System.in);

try{

System.out.print("请输入第一个数:");

double x = scanner.nextDouble();

System.out.print("请输入第二个数:");

double y = scanner.nextDouble();

System.out.print("请输入运算符:");

String s = scanner.next();

char z = s.charAt(0);

zhidao.yunsuan(x, y, z);

}catch(Exception e){

System.out.println("请输入正确的数据!");

}

System.out.print("是否继续?continue:继续,任意字符:结束");

condition = scanner.next();

}while("continue".equals(condition));

}

public static void yunsuan(double x,double y,Character z){

DecimalFormat r=new DecimalFormat();

r.applyPattern("#0.00");

if(z.equals('+')){

System.out.println(x+"+"+y+"=" + r.format((x+y)));

} else if(z.equals('-')){

System.out.println(x+"-"+y+"=" + r.format((x-y)));

} else if(z.equals('*')){

System.out.println(x+"*"+y+"=" + r.format((x*y)));

} else if(z.equals('/')){

if(y==0){

System.out.println("被除数不能为0");

} else{

System.out.println(x+"/"+y+"=" + r.format((x/y)));

}

}else{

System.out.println("无法识别改运算符");

}

}

}

java实现四则运算

这里计算要用到栈!

要是学过基础的数据结构你应该知道怎么计算!

其实挺挺复杂的!

栈读取每一个数值和操作符

根据不同的优先级进行计算!

给你推荐一个地址!看一下!

java简单的四则运算.

public class Arithmetic {

public static void Ari(){

Scanner scan = new Scanner(System.in);

StringBuffer buffer = new StringBuffer();

DecimalFormat dec = new DecimalFormat("0.00");//格式化结果保留两位小数

String all = "";//所有的计算表达式连在一起

System.out.println("请输入表达式的个数,只能为正整数");

int n = scan.nextInt();

System.out.println("请依次输入要计算的表达式");

   for(int i=0;in+1;i++){

    buffer = buffer.append(scan.nextLine()+",");

   }

   all = buffer.substring(0, buffer.lastIndexOf(","));

   String allAri[] = all.split(",");

   String ari = "";//不同的算法表达式

   float add;//加法的计算结果

   float subtract;//减肥的计算结果

   float multi;//乘法的计算结果

   float divison;//除法的计算结果

   int model;//模运算的计算结果

   for(int j=0;jallAri.length;j++){

    ari = allAri[j];

    if(ari.contains("+")){

    String tempAry[] = ari.split("[+]");

    add = Float.valueOf(tempAry[0])+Float.valueOf(tempAry[1]);

    System.out.println(dec.format(add));

    }else if(ari.contains("-")){

    String tempAry[] = ari.split("[-]");

    subtract = Float.valueOf(tempAry[0])-Float.valueOf(tempAry[1]);

    System.out.println(dec.format(subtract));

    }else if(ari.contains("*")){

    String tempAry[] = ari.split("[*]");

    multi = Float.valueOf(tempAry[0])*Float.valueOf(tempAry[1]);

    System.out.println(dec.format(multi));

    }else if(ari.contains("/")){

    String tempAry[] = ari.split("[/]");

    divison = Float.valueOf(tempAry[0])/Float.valueOf(tempAry[1]);

    System.out.println(dec.format(divison));

    }else if(ari.contains("%")){

    String tempAry[] = ari.split("[%]");

    model = Integer.valueOf(tempAry[0])%Integer.valueOf(tempAry[1]);

    System.out.println(model);

    }

   }

}

public static void main(String[] args) {

Ari();

}

}

测试结果截图如下:

你的测试用例的输入的表达式的个数是4个,但下面的计算表达式好像少了一个,所以我加了一个除法的计算表达式,若理解有误,还望说明。


名称栏目:分数四则运算java代码 分数四则运算java代码是什么
当前URL:http://cdkjz.cn/article/ddjhdde.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220