从标准输入中输入一个小数,编写程序将其转换成相应的分数显示,即转换为几又几分之几。
时间: 2024-10-31 11:13:09 浏览: 62
在Python中,我们可以使用`decimal`模块来进行小数到分数的转换。首先,我们需要导入`decimal`模块,并创建一个`Decimal`对象来存储用户输入的小数。然后,通过除法找到分子和分母,最后将结果表示为字符串形式。
下面是一个简单的例子:
```python
from decimal import Decimal, getcontext
def convert_to_fraction():
# 设置四舍五入精度
getcontext().prec = 100
# 获取用户输入的小数
num = input("请输入一个小数:")
try:
number = Decimal(num)
# 将小数转换为最简分数
fraction = number.quantize(Decimal('0.'))
# 如果分数为整数,则不需要显示作为分数
if fraction % 1 == 0:
print(f"{num}是一个整数,无需转换为分数")
else:
whole_part, frac_part = str(int(fraction)).split('.')
numerator, denominator = int(frac_part), int('1' + '0' * (len(frac_part) - 1))
# 检查分母是否可以简化
gcd = math.gcd(numerator, denominator)
if gcd > 1:
simplified_numerator = numerator // gcd
simplified_denominator = denominator // gcd
print(f"{number}等于{whole_part + '/' + str(simplified_numerator)}又{simplified_numerator//gcd}/{simplified_denominator}")
else:
print(f"{number}等于{whole_part}/{denominator}")
convert_to_fraction()
```
运行上述程序后,它会提示用户输入一个小数,然后尝试将其转换为分数。如果得到的是一个整数,就会直接告知。如果分数部分非零,会计算出最简分数形式并显示。
阅读全文