Java练习:实现分数之间进行加、减、乘除操作,并用分数形式显示运算结果

Java 在进行分数之间运算时,结果都是以小数的形式进行显示的;

如下代码演示:

public class Rational_Test {

	public static void main(String[] args) {
		//测试分数运算结果
		double x = 1,y = 2,a = 2 ,b = 3 ;
        //计算 1/2 + 1/3 、 1/2 * 1/3 、1/2 - 1/3 、1/2 / 1/3 ;
		double add = (x)/y + a/b;
		double sub = (x)/y - x/b;
		double muti = (b)/y * a/b;
		double div = (x)/y / a/b;
		System.out.println("1/2 + 2/3的值="+ add);
		System.out.println("1/2 - 1/3的值="+ sub);
		System.out.println("3/2 * 2/3的值="+ muti);
		System.out.println("1/2 / 2/3的值="+ div);
	}
}

代码输出结果:

1/2 + 2/3的值 = 1.1666666666666665
1/2 - 1/3的值 = 0.16666666666666669
3/2 * 2/3的值 = 1.0
1/2 / 2/3的值 = 0.08333333333333333


要是想运算的结果也是以分数形式显示的话,可以通过下面 Retional类 来快速实现;

Retional类的概况:

1、Rational类的源码比较多,我就不在本文中展示了,我在我的资源那里上传了 Rational类的源码 和 自己制作的 Rational 类的jar包,如果需要源码或者 jar包的可以进行下载;制作jar包是为了方便类的使用和移动;

jar包的下载地址:

rational.jar-Java代码类资源-CSDN下载

Rational类的源代码地址:

Rational.java_有理数类java-Java文档类资源-CSDN下载

 jar包的使用:

下载jar包后,复制到需要用到的Java项目中,选中jar包,点击右键选择 Build Path 的 Add to Build Path 就可以直接使用了;

2、Rational类的详细说明:

  • numerator 和 denominator 表示有理数的分子和分母 ;
  • Rational add(Ration r) 方法能于参数 r 指定的有理数做 加法运算,并返回一个 Rational 对象;
  • Rational sub(Ration r) 方法能于参数 r 指定的有理数做 减法运算,并返回一个 Rational 对象;
  • Rational muti(Ration r) 方法能于参数 r 指定的有理数做 乘法运算,并返回一个 Rational 对象;
  • Rational div(Ration r) 方法能于参数 r 指定的有理数做 除法运算,并返回一个 Rational 对象;

Retional类的使用:

如下演示:

下面代码中,是导入所创建的 Rational类的jar包;使用 import javas.langRational.Rational; 进行导入jar包中的类 ;

package Chapter_Four;
import javas.langRational.Rational;
public class Rational_Test {

	public static void main(String[] args) {
		//测试分数运算结果
		double x = 1,y = 2,a = 2 ,b = 3 ;
        //计算 1/2 + 1/3 、 1/2 * 1/3 、1/2 - 1/3 、1/2 / 1/3 ;
		double add = (x)/y + a/b;
		double sub = (x)/y - x/b;
		double muti = (b)/y * a/b;
		double div = (x)/y / a/b;
		System.out.println("默认情况下以小数形式显示结果:");
		System.out.println("1/2 + 2/3的值="+ add);
		System.out.println("1/2 - 1/3的值="+ sub);
		System.out.println("3/2 * 2/3的值="+ muti);
		System.out.println("1/2 / 2/3的值="+ div);
		System.out.println("");

		//Retional类的使用
		Rational ra1 = new Rational();  //创建Rational类对象ra1
		ra1.setNumerator(3);      //设置分数的分子
		ra1.setDenominator(5);    //设置分数的分母
		
		Rational ra2 = new Rational();  //创建Rational类对象ra2
		ra2.setNumerator(2);      //设置分数的分子
		ra2.setDenominator(5);    //设置分数的分母
		
		//进行 加法操作
		Rational result = ra1.add(ra2); //调用方法,并返回一个Rational对象result
		//返回操作后 分子的计算结果
		int g = result.getNumerator();
		//返回操作后 分母的计算结果
		int h = result.getDenominator();
		System.out.println("以分数形式显示计算结果:");
		System.out.println("分数 3/5 + 2/5 的计算结果= " + g +"/"+ h);
		
		//进行 减法操作
		result = ra1.sub(ra2);    //调用方法,并返回一个Rational对象result
		// 返回操作后 分子的计算结果
		g = result.getNumerator();
		// 返回操作后 分母的计算结果
		h = result.getDenominator();
		System.out.println("分数 3/5 - 2/5 的计算结果= " + g +"/"+ h);
		
		//进行 乘法操作
		result = ra1.muti(ra2);   //调用方法,并返回一个Rational对象result
		// 返回操作后 分子的计算结果
		g = result.getNumerator();
		// 返回操作后 分母的计算结果
		h = result.getDenominator();
		System.out.println("分数 3/5 * 2/5 的计算结果= " + g +"/"+ h);
		
		// 进行 除法操作
		result = ra1.div(ra2);    //调用方法,并返回一个Rational对象result
		// 返回操作后 分子的计算结果
		g = result.getNumerator();
		// 返回操作后 分母的计算结果
		h = result.getDenominator();
		System.out.println("分数 3/5 / 2/5 的计算结果= " + g +"/"+ h);
	}
}

代码输出结果:

默认情况下以小数形式显示结果:
1/2 + 2/3的值=1.1666666666666665
1/2 - 1/3的值=0.16666666666666669
3/2 * 2/3的值=1.0
1/2 / 2/3的值=0.08333333333333333

以分数形式显示计算结果:
分数 3/5 + 2/5 的计算结果= 1/1
分数 3/5 - 2/5 的计算结果= 1/5
分数 3/5 * 2/5 的计算结果= 6/25
分数 3/5 / 2/5 的计算结果= 3/2


Rational类实现计算:1/2 + 3/2 + 5/3 + 8/5 + 13/8 + ...的前10项之和 ;

如下代码演示:

//Rational类实现计算:1/2 + 3/2 + 5/3 + 8/5 + 13/8 + ...的前10项之和 ;
	     int n=10,k=1;
	      System.out.println("计算2/1+3/2+5/3+8/5+13/8…的前"+n+"项和.");
	      
	      Rational sum=new Rational();
	      sum.setNumerator(0);
	      
	      Rational item=new Rational();
	      item.setNumerator(2);
	      item.setDenominator(1);
	      while(k<=n) {
	         sum=sum.add(item);
	         k++;
	         int fenzi=item.getNumerator();
	         int fenmu=item.getDenominator();
	         item.setNumerator(fenzi+fenmu);
	         item.setDenominator(fenzi);
	      } 
	      a=sum.getNumerator();
	      b=sum.getDenominator();
	      System.out.println("用分数表示:");
	      System.out.println(a+"/"+b);
	      double doubleResult=(a*1.0)/b;
	      System.out.println("用小数表示:");
	      System.out.println(doubleResult); 

代码输出结果:

计算2/1+3/2+5/3+8/5+13/8…的前10项和.
用分数表示:
9.98361233E8/6.058052E7
用小数表示:
16.479905306194137


扩展:

Java文档生成器的使用:

一、Java开发工具JDK提供了 javadoc.exe 可以制作源文件类价格的html格式文档;

二、命令格式如下:

1、G:\test>javadoc JF.java

或者

2、G:\test>javadoc -d F:\javas\test JF.java

第二个命令可以使用参数 -d 来指定生成文档所在的目录;F:\javas\test 代表所需要指定存放html文件的路径

如下图所示:

以上就是Rational类和Java文档生成器的使用了,有不明白的地方欢迎在下方留言,大家一起讨论。

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值