java - 分数简化
问题描述
我正在尝试编写一个程序,将分数减少到最简单的形式,但它只是部分工作(将分子简化适当的数量,但使分母保持不变),有人可以帮我理解什么是失败的吗?
private int greatestCommonDivisor(int num1, int num2) {
while(num1-num2!=0) {
if(num1>num2) {
num1 = num1 - num2;
}
else {
num2 = num2 - num1;
}
}
return num1;
}
private void simplify() {
if(denominator<0) {
numerator = numerator*(-1);
denominator = denominator*(-1);
}
else {
numerator = numerator/greatestCommonDivisor(numerator, denominator);
denominator = denominator/greatestCommonDivisor(numerator, denominator);
}
}
public String toString() {
simplify();
if(denominator == 1) {
return numerator + "";
}
else if(numerator!=0) {
return numerator + "/" + denominator;
}
else {
return "0";
}
}
我相信这是所有必要的信息,如果您需要其他信息,请务必告诉我。
解决方案
推荐阅读
- java - Java Money 奇数除法和四舍五入不损失/获得美分
- server - Indy IdTCPServer 问题
- arrays - purescript:混合效果和数组上下文
- javascript - 使用数组的所有名称和计数构建 Javascript 对象
- javascript - Graphql的返回查询为空时如何在Nuxtjs中进行重定向
- python - 无法正确实现 wiki 搜索。按查询搜索结果不起作用
- python - Python War纸牌游戏运行正常但无限
- git - 为什么 git pack 协议只协商包文件协商期间要发送的提交?
- linux - 如何在后台运行 Webpack 服务命令?
- javascript - 标识符“i”已被声明为问题