Python:如何对索引数字进行四舍五入?

2024-05-12 19:13:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下代码片段(来自类的一部分):

def __init__(self):
    self.data_end = self.datas[0].end
    self.data_start = self.datas[0].start

然后,输入以下代码:

def next_trans(self):
    if not self.position:
        if self.buy_signal > 0:
            size = int(self.getcash() / self.datas[0].start)
            self.log(f'BUY - Size: {size}, Cash: {self.getcash():.2f}, Start: {self.data_start[0]}, End: {self.data_end[0]}')
            self.start(size=size)

我遇到的问题是,“开始”和“结束”值打印为长浮点数(例如89.12999725341797)

我尝试了各种方法来使用round(),但没有成功。我会遇到如下错误:

AttributeError: 'LineBuffer' object has no attribute 'round'

TypeError: type LineBuffer doesn't define __round__ method

如何将输出四舍五入到小数点后两位(例如89.13)

提前谢谢


Tags: 代码selftransdatasizeifinitdef
1条回答
网友
1楼 · 发布于 2024-05-12 19:13:48

解决方案是附加":.2f"

self.log(f'BUY - Size: {size}, Cash: {self.getcash():.2f}, Start: {self.data_start[0]:.2f}, End: {self.data_end[0]:.2f}')

最初,我添加了".2f"(缺少前面的":"),它抛出了我看到的一条错误消息

谢谢@Błotosmętek

相关问题 更多 >