第10讲-- 布尔类型的课后测试题--关于fraction函数的问题
困惑来源于小甲鱼第10讲,布尔类型的课后测试题 的“动动手”的第0题题目如下:
请自学 fractions 文档,并计算 1708227363155544/4636617128565048 约分后的值。
这是我的答案,就两行代码:
import fractions as f
print(f.Fraction(1708227363155544,4636617128565048))
它能跑起来,计算的值也是对的,是7/19。
但是,当我将代码第二行,括号内数字1708227363155544与4636617128565048之间的逗号,改为斜杠/之后,即:
print(f.Fraction(1708227363155544/4636617128565048))
打印出来的值非常奇怪,结果变成了:
6636883661388099/18014398509481984
这是为什么呢?
请问斜杠在fraction函数里的意思是什么呢??
我原来理解的是,斜杠就代表除号,因为我试验过。
比如,将上面的数字替换成45/48,
那么代码
import fractions as f
print(f.Fraction(45/48))
的结果
和
代码
import fractions as f
print(f.Fraction(45,48))
的结果
是一模一样的,都是15/16。
但是为什么将数字一替换,如我开头讲到的,
1708227363155544/4636617128565048和1708227363155544,4636617128565048
结果就不同了呢????
求解释!
可以用help()查看一下fractions 的用法 斜号是除,但是浮点数会精度丢失
>>> Fraction(7,19)
Fraction(7, 19)
>>> Fraction(7/19)
Fraction(6636883661388099, 18014398509481984) 不能懒 发表于 2021-8-12 22:00
可以用help()查看一下fractions 的用法
没时间啊兄弟。。有时间我也不来求助了{:5_109:} 逃兵 发表于 2021-8-13 08:30
斜号是除,但是浮点数会精度丢失
谢谢兄弟, 能给更具体的解释么?
比如,为什么Fraction(45/48)的结果正常,Fraction(7/19)的结果就不正常了呢? 逃兵 发表于 2021-8-13 08:30
斜号是除,但是浮点数会精度丢失
谢谢兄弟, 能给更具体的解释么?
比如,为什么Fraction(45/48)的结果正常,Fraction(7/19)的结果就不正常了呢? 逃兵 发表于 2021-8-13 08:30
斜号是除,但是浮点数会精度丢失
谢谢兄弟, 能给更具体的解释么?
比如,为什么Fraction(45/48)的结果正常,Fraction(7/19)的结果就不正常了呢?
页:
[1]