用Java语言(将十进制数转化为分数)编写一个程序,提示用户输入一个十进制数,然后以分数的形式显示该数字。提示:将十进制数以字符串的形式读入,从字符串中提取其整数部分和小数部分,然后运用编程练习题13.15中使用BigInteger实现的Rational类来得到该十进制数的有理数。下面是一些运行示例: Enter a decimal number: 3.25 The fraction number is13/4 Enter a decimal number: 0.45452 The fraction number is -11363/25000
时间: 2024-02-13 07:00:13 浏览: 75
输入一个十进制整数,然后显示对应的二进制值.java
好的,以下是 Java 代码,用于将十进制数转换为分数:
```java
import java.math.BigDecimal;
import java.math.BigInteger;
public class DecimalToFraction {
public static void main(String[] args) {
String decimalStr = System.console().readLine("Enter a decimal number: ");
BigDecimal decimalNumber = new BigDecimal(decimalStr);
BigInteger wholeNumber = decimalNumber.toBigInteger();
BigDecimal decimalPart = decimalNumber.subtract(new BigDecimal(wholeNumber));
BigInteger numerator = decimalPart.movePointRight(decimalPart.scale()).toBigInteger();
BigInteger denominator = BigInteger.TEN.pow(decimalPart.scale());
Rational fraction = new Rational(wholeNumber.multiply(denominator).add(numerator), denominator);
System.out.printf("The fraction number is %d/%d\n", fraction.getNumerator(), fraction.getDenominator());
}
}
```
此程序首先将输入的十进制数转换为 BigDecimal 类型的数字,然后提取其整数部分和小数部分。接下来,它将小数部分转换为分数,并将其与整数部分相加得到最终的分数。最后,程序使用 Rational 类来表示分数。
需要注意的是,此程序中使用了 Rational 类,该类需要在编程练习题13.15中实现。Rational 类的实现方式与 Python 中的 Fraction 类类似,可以参考 Python 代码中的实现方式。
希望这个程序对你有所帮助!
阅读全文