gpt4 book ai didi

python - 理解Python中的这个类。运算符 % 和格式化 float

转载 作者:行者123 更新时间:2023-12-01 06:19:20 24 4
gpt4 key购买 nike

class FormatFloat(FormatFormatStr):
def __init__(self, precision=4, scale=1.):
FormatFormatStr.__init__(self, '%%1.%df'%precision)
self.precision = precision
self.scale = scale

def toval(self, x):
if x is not None:
x = x * self.scale
return x

def fromstr(self, s):
return float(s)/self.scale

让我困惑的是这部分

FormatFormatStr.__init__(self, '%%1.%df'%precision)

这是否意味着精度在 1 之前输入两次,在 df 之前输入一次? df 代表您所知道的任何东西吗?我在其他地方甚至在它的祖先中都没有看到它,如下所示:

class FormatFormatStr(FormatObj):
def __init__(self, fmt):
self.fmt = fmt

def tostr(self, x):
if x is None: return 'None'
return self.fmt%self.toval(x)

class FormatObj:
def tostr(self, x):
return self.toval(x)

def toval(self, x):
return str(x)

def fromstr(self, s):
return s

另外,我将其放入我的 Ipython 中并得到:

In [53]: x = FormatFloat(.234324234325435)
In [54]: x
Out[54]: <matplotlib.mlab.FormatFloat instance at 0x939d4ec>

我认为它将精度降低到 4,缩放比例降低到 1。但它却存储在我内存中的某个地方。我可以检索它以查看它对号码有何影响吗?

谢谢大家,你们非常有帮助!

最佳答案

>>> precision=4
>>> '%%1.%df'%precision
'%1.4f'

%% 被翻译为 %

1 按原样打印

%d 将精度打印为十进制数

f 按字面意思打印

关于python - 理解Python中的这个类。运算符 % 和格式化 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1482383/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com