python - 浮点数需要显示为分数
问题描述
请您就以下问题提出建议。
首先,我们必须将分子除以分母以获得浮点数。然后小数点后的数字需要显示为分数。
当 9 除以 4 时,它必须显示为 2 1/4。这工作正常。
当 13 除以 5 时,它需要显示为 2 3/5。
我的代码不适用于第二种情况。获取输出为
2 5404319552844595/9007199254740992.
STEP1:用分子除以分母求商 用 ( nmr%dnr
) 计算余数。
STEP 2:将上述步骤中得到的余数再除以分母。Fractions
使用内置方法将浮点数转换为分数。
第3 步:
将输出存储在元组中并打印输出。
t1=(int(q),r)
.
代码:
from fractions import Fraction
def printValue(num,den):
rem=0.0;q=0.0;
q=float(num)/float(den)
rem=float(num)%float(den)
if rem>0:
#print ("%0.2f"%(rem/den))
r=Fraction(round(rem/den,2))
t1=(int(q),r) #Output is stored in a tuple
return t1
else:
t2=(int(q),)
return t2
num=int(input())
den=int(input())
z=printValue(num,den)
for i in z:
print(i,end=" ")
解决方案
您可以使用divmod
.
def printValue(num, den):
x, r = divmod(num, den)
print(f'{x if x else ""} {r}/{den}')
printValue(9, 4)
# prints:
2 1/4
printValue(13, 5)
# prints:
2 3/5
printValue(2, 5)
# prints:
2/5
推荐阅读
- flutter - 颤动如何将列对齐到嵌套在另一个列中
- django - 处理定向到反应应用程序主页/索引的 Django Rest Framework 404 页面
- python - 如何重构或友好的程序员视图?
- react-native - 将 onPress 事件传递给子组件。反应原生
- python - ERROR:蜘蛛错误处理
我对python和scrapy非常陌生。我已经尝试运行现有代码,但遇到了这些错误。我正在 Windows 10 上运行最新版本的 scrapy,并使用 Visual Code Studio 运行我的测试等。
终端调试
2020-12-07 20:52:52
- mysql - MySQL 查询从满足用户定义条件的每个组中选择一条记录
- azure - 使用 Rest API 在 Azure Devops 中创建工作项时出错
- r - R中的read.table多个Txt文件
- reactjs - 反应道具不加载数据表
- javascript - Bootstrap 和 JavaScript 按钮更改具有背景颜色的图标