问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用java怎么写分数?

发布网友 发布时间:2022-05-15 18:21

我来回答

1个回答

热心网友 时间:2023-12-31 14:20

你可以写个分数类,下面是参考:

public class Fraction {
private Integer numerator; // 分子;
private Integer denominator; // 分母

/**
* 构造器
*/
public Fraction() {
}

public Fraction(Integer numerator, Integer denominator) {
this.numerator = numerator;
this.denominator = denominator;
}

public Integer getDenominator() {
return denominator;
}

public void setDenominator(Integer denominator) {
this.denominator = denominator;
}

public Integer getNumerator() {
return numerator;
}

public void setNumerator(Integer numerator) {
this.numerator = numerator;
}

/**
* 求最大公约数
*
* @return
*/
private int getGCD(int a, int b) {
int max = Math.max(a, b);
int min = Math.min(a, b);
int mod = max % min;
if (mod == 0) {
return min;
} else {
return this.getGCD(mod, min);
}
}

/**
* 简化和约分
*
* @return
*/
public Fraction simplify() {
// 格式化
if (this.numerator == 0) {
this.denominator = null;
return this;
} else if (this.denominator * this.numerator > 0
&& this.denominator < 0) {
this.denominator = Math.abs(this.denominator);
this.numerator = Math.abs(this.numerator);
return this;
} else if (this.denominator < 0) {
this.denominator = Math.abs(this.denominator);
this.numerator = -this.numerator;
return this;
}
// 约分
int * = this.getGCD(Math.abs(denominator), Math.abs(numerator));
if (* == 1) {
return this;
} else {
this.denominator = this.denominator / *;
this.numerator = this.numerator / *;
return this;
}
}

/**
* 加法
*
* @param fraction
* @return
*/
public Fraction add(Fraction fraction) {
Integer resultDenominator = Math.abs(this.denominator)
* Math.abs(fraction.getDenominator());
Integer resultNumerator = this.numerator * fraction.getDenominator()
+ this.denominator * fraction.getNumerator();
Fraction result = new Fraction(resultNumerator, resultDenominator);
return result.simplify();
}

/**
* 减法
*
* @param fraction
* @return
*/
public Fraction minus(Fraction fraction) {
Integer resultDenominator = Math.abs(this.denominator)
* Math.abs(fraction.getDenominator());
Integer resultNumerator = this.numerator * fraction.getDenominator()
- this.denominator * fraction.getNumerator();
Fraction result = new Fraction(resultNumerator, resultDenominator);
return result.simplify();
}

/**
* 乘法
*
* @param fraction
* @return
*/
public Fraction multiply(Fraction fraction) {
Fraction result = null;
if (this.numerator == 0 || fraction.numerator == 0) {
result = new Fraction(0, null);
}
Integer resultDenominator = this.denominator
* fraction.getDenominator();
Integer resultNumerator = this.numerator * fraction.getNumerator();
result = new Fraction(resultNumerator, resultDenominator);
return result.simplify();
}

/**
*除法
*
* @param fraction
* @return
*/
public Fraction divide(Fraction fraction) {
Fraction result = null;
if (this.numerator == 0) {
result = new Fraction(0, null);
}
Integer resultDenominator = this.denominator * fraction.getNumerator();
Integer resultNumerator = this.numerator * fraction.getDenominator();
result = new Fraction(resultNumerator, resultDenominator);
return result.simplify();
}

@Override
public String toString() {
return "[分子]" + this.numerator + "-[分母]" + this.denominator;
}

/**
* 测试
*
* @param args
*/
public static void main(String[] args) {
Fraction f1 = new Fraction(1, 2);
Fraction f2 = new Fraction(2, 4);
System.out.println(f1);
System.out.println(f2);
System.out.println(f2.simplify());
System.out.println(f1.add(f2));
System.out.println(f1.minus(f2));
System.out.println(f1.multiply(f2));
System.out.println(f1.divide(f2));
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
说课包括哪些方面 说课内容包括()。 如何在手机百度上删除对话记录? 结核病是什么样的疾病? 曹丕17岁得了肺痨,明知自己命不长久,还要强争王位,是不是很自私呢?_百... 古代小说常出现的病名 急求一篇"生活小窍门"(500字)的作文 至今最有什么小妙招 健康的戒烟方法 笔记本电池锁死是什么原因引起的? 怎么去当兵? 手机WiFi可否接受到宽带无线连接 郴州人为什么说四川话 长江南岸镇江以西、九江以东的沿江地带所使用的方言是西南方言还是江淮方言? 乐平话的日常用语 四川话和陕西话 陕南话很像四川话,能不能具体一些,是偏成都话吗?还是别的地方? 谁会汉中话? 汉中市洋县方言为什么和汉中其他县不一样 镇巴话我爱你怎么说 气质理论及其在管理实践中的应用 陕西汉中镇巴方言摸热,摸塘子什么意思? 多彩气泡怎么设置 多彩气泡的功能介绍 加热后的香蕉是寒性的还是温性的。因为梨加热后成温的。不知香蕉一样吗 听说体寒的人不能吃寒性的水果,那把水果煮熟了能吃吗?谢谢了,大神帮忙啊 怎么付款啊? 我的订单状态是待付款? 求一下华晨宇这个帽子的牌子嗷嗷啊谢谢大家 邓紫棋龙卷风同款HATER帽子原价 百度文库订单未支付的订单,怎么继续支付 java习题 怎么写分数 java中怎么表达数学中的几分之几 如何在java程序中输出分数 电脑java语言中打分数。 java和数据库里用什么形式存储表达分数数字 如何用JAVA构建分数?急急急!!! Java中 怎样将分数的分子和分母都输出 一个Java中输入分数的问题 java 如何把小数变成分数 java中如何将分数化简成小数 用户输入精确度 最后得出相应的小数 在java中怎么输入四分之三 java中如何将分数转化成小数? 什么样的玉米种最好??? 怎么把玉米种的好 java小轮车cl-8s-d 怎么样 1000块左右20寸公路自行车推荐 圣骑士技能怎么样配合最好?带什么雇佣兵? 暗黑破坏神圣骑士用什么佣兵好? 暗黑1.11,锤子骑士用什么佣兵好? 哪些大尺寸屏幕或者电视支持2048 * 1536的分辨率的,20寸以上