(将十进制数转化为分数)编写一个程序,提示用户输入一个十进制数,然后以分数的形式显示该数字。提示:将十进制数以字符串的形式读入,从字符串中提取其整数部分和小数部分,然后运用编程练习题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 13:00:12 浏览: 76
好的,我会尽力回答你的问题。以下是 Python 代码,用于将十进制数转换为分数:
```python
from decimal import Decimal
from fractions import Fraction
def decimal_to_fraction(decimal_str):
decimal_number = Decimal(decimal_str)
whole_number = decimal_number.to_integral_value()
decimal_part = decimal_number - whole_number
numerator = (decimal_part * Fraction(10**len(decimal_part.as_tuple().digits))).numerator
denominator = 10**len(decimal_part.as_tuple().digits)
return Fraction(whole_number * denominator + numerator, denominator)
decimal_str = input("Enter a decimal number: ")
fraction = decimal_to_fraction(decimal_str)
print("The fraction number is {}/{}".format(fraction.numerator, fraction.denominator))
```
此程序首先将输入的十进制数转换为 Decimal 类型的数字,然后提取其整数部分和小数部分。接下来,它将小数部分转换为分数,并将其与整数部分相加得到最终的分数。最后,程序输出分数形式的结果。
希望这个程序对你有所帮助!
阅读全文