JAVA小数分数转换

您所在的位置:网站首页 分数转换小数 JAVA小数分数转换

JAVA小数分数转换

2023-09-01 17:14| 来源: 网络整理| 查看: 265

【问题描述】

从标准输入中输入一个小数,编写程序将其转换成相应的分数显示,即转换为几又几分之几。 要求: 1、输入的小数包括整数部分、小数点和小数部分;整数部分和小数部分最多有7位数字;整数部分可以为0,若整数部分大于等于1,则其最高位不为0;小数部分的末尾数字不为零。 2、输出的分数应为最简分数,由三个数字组成:第一个数字代表整数部分(若分数小于1,则为0,否则输出的整数的最高位不为0),第二个数字代表分子,第三个数字代表分母,分子比分母小且不能再约分。

【输入形式】

从标准输入中输入一个小数后打回车。

【输出形式】

将三个整数输出到标准输出,并且分别以一个空格分隔,最后一个整数后没有空格,有回车换行。

【样例1输入】

0.35

【样例1输出】

0 7 20

【样例2输入】

1050.0144

【样例2输出】

1050 9 625

【样例说明】

样例1中输入的小数为0.35,整数部分为0,小数部分转换为分数为35/100,约分成最简分数为7/20。 样例2中输入的小数为1050.0144,整数部分为1050,小数部分转换为分数为144/10000,约分成最简分数为9/625。

【评分标准】该题要求编程实现小数到分数的转换。

import java.util.Scanner; public class Train1 { public static int gcd(int a,int b){ return b==0 ? a:gcd(b,a%b) ;//利用辗转相除法求得最大公约数 } public static void main(String[] args){ Scanner in = new Scanner(System.in); String number;//定义字符number而非float或者double,方便后面的处理。 int decimal; int a, b,c; int g; number = in.next();//写入方式,区分nextline String[] array = new String[2];//定义长度为2的数组,分别存放整数位和小数位。 array = number.split("\\.");//利用.分割整数和小数 a = Integer.parseInt(array[0]);//整数部分 decimal = Integer.parseInt(array[1]);//小数部分 int length = array[1].length(); b = decimal; c = (int)Math.pow(10, length); g = gcd(b,c); System.out.println(a+" "+b/g+" "+c/g); }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3