python要求所有浮点数必须带有小数部分,python中浮点数保留两位小数怎么写

  python要求所有浮点数必须带有小数部分,python中浮点数保留两位小数怎么写

  我目前正在实施一个分数等级来训练我的面向对象的程序设计(面向对象编程)技能,我遇到了一个问题。在我的类中,您可以在以下对象之间执行数学操作:分数和分数

  整数和分数

  分数和整数

  我想把两者都加上:分数与浮动

  浮点数

  因为当我处理整数时,我要做的是使它们成为一个分母为一的分数,所以在操作漂浮物时,我想创建一个表示给定的漂浮物的{}。这就是我的问题所在。在

  首先,理解我的分数等级所需的最低代码:类分数(对象):

  def __init__(self,num,den=1,reduce=True):

  #只接受整数或可转换的字符串

  如果不是(type(num)==int,type(den)==int):

  如果类型(数量)==字符串:

  尝试:

  num=int(数字)

  除了值错误:

  引发RuntimeError(您只能传递给分子和\

  分母整数或整数可转换字符串!)

  否则:

  引发RuntimeError(您只能传递给分子和\

  分母整数或整数可转换字符串!)

  如果type(den)==str:

  尝试:

  den=int(den)

  除了值错误:

  引发RuntimeError(您只能传递给分子和\

  分母整数或整数可转换字符串!)

  否则:

  引发RuntimeError(您只能传递给分子和\

  分母整数或整数可转换字符串!)

  #不接受分母为0的分数

  如果den==0:

  引发ZeroDivisionError(“分母不得为0")

  #如果数字和兽穴都为负,则翻转两者

  如果数字0和den 0:

  num=abs(数字)

  den=abs(数字)

  #如果只有兽穴为负,则将-改为分子

  elif den 0:

  num *=-1

  den=abs(den)

  自我编号=数字

  self.den=den

  自我汽车是一个变量,它会告诉我们是否应该

  #自动将分数减少到较低的项。当做一些

  #数学,如果任何一个分数有self.auto==False,则结果

  #也会有self.auto==False

  self.auto=减少

  如果self.auto

  self.reduce()

  定义float_to_fraction(f):

  不应由分数的实例调用"",因为它不\

  有目的地接受"自我"论点。相反,将其称为\

   Fraction.float_to_fraction创建具有给定浮点数的新分数

  #首先将数字变成一个字符串

  f=str(f)

  exp=

  #如果数字有指数(乘以10的某次方

  #储存起来以备后用。

  如果f中的e:

  #得到恩或“电子名词”

  exp=f[f.index(e):]

  #从字符串中切分指数

  f=f[:f.index(e)]

  #开始分子和分母

  数量=0

  den=1

  #变量来检查我们是否传递了".",标记的小数部分

  #编号

  十进制=假

  对于f中的字符:

  如果夏尔!=.:

  #将当前字符加到分子上

  数字=字符

  如果是十进制:

  #如果我们在"."的右边,还会将0添加到

  #保持比例的分母

  den=0

  #切片解析字符

  f=f[1:]

  if char== . :

  #告诉函数我们现在要去的小数部分

  #浮动。

  十进制=真

  #切掉"."

  f=f[1:]

  #解析指数,如果有的话

  if exp!=:

  #如果是负指数,我们应该增大分母

  if exp[1]==-:

  #向穴中添加与要添加的绝对值一样多的0

  "-"号的右边。例如:如果exp=e-12 ,则添加12个零

  den=0*int(exp[2:])

  #和上面一样,但是在分子中

  if exp[1]== :

  num=0*int(exp[2:])

  #最后,用解析后的数字和兽穴返回分数对象!

  返回分数(整数,整数)

  我的浮点到分数()函数100%准确地将给定的漂浮物转换为分数。但我记得在我的数学课上,有一个n位数长循环的循环小数,比如0.123123123123。或者0.(123)可以用分子=周期和{}的分数形式写:

  123/999=0.(123)3/9 (=1/3)=0.(3);142857/999999 (=1/7)=0.(142857)等。在

  但是在这个实现中,如果我把1/3这样的参数传递给float_to_fraction(),它会解析“0.3333333333”,这个值是有限的,返回这个分数:3333333333/1000000000000000。它是准确的,因为我给函数传递了一个有限的数!在这个函数中,如何实现一个识别循环小数的方法,这样就可以返回一个分母=10^n的分母,而不是一个分母=10^n.的分母

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: