import java.util.Scanner;
public class Test {
public static void main(String[] args) {
System.out.println("请输入一个小数,用于实现两个数求和并用分数展示:");
Scanner sc = new Scanner(System.in);
Double s1 = sc.nextDouble();
System.out.println("请输入第二个小数:");
Double s2 = sc.nextDouble();
String s = String.valueOf(s1+s2);
System.out.println("运行结果为:");
fraction(s);
}
//将小数化为分数
public static void fraction(String s){
s.toCharArray();
int i = 0;
//遍历找到小数点的位置
while (i<s.length()){
if(s.charAt(i)=='.'){
break;
}
i++;
}
//乘10处理,去掉小数点
int fm = (int)Math.pow(10,s.length()-2);
Double number = Double.parseDouble(s);
int fz = (int)(number*fm);
int gcd = gcd(fz,fm);
System.out.println(fz/gcd+"/"+fm/gcd);
}
//最大公约数
public static int gcd(int a,int b){
if(a<b){
int temp = a;
a = b;
b = temp;
}
return (a%b==0?b:gcd(a%b,b));
}
}
控制台:
请输入一个小数,用于实现两个数求和并用分数展示:
0.35
请输入第二个小数:
0.25
运行结果为:
3/5