如何找到大浮点数的下限?

How to find floor on big floating point numbers?

如何在 python 中正确找到 floor(a*n),其中 n 是一个非常大的浮点数?

我尝试使用 Decimal 模块但是

Deciaml(1.1) * Decimal(123456789123456789123456789)

没有给出正确答案。

你不能用float来构造Decimal,精度已经丢失了。用字符串初始化它:

>>> Decimal(1.1) * Decimal(123456789123456789123456789)
Decimal('135802468035802479000968054.4')
>>> Decimal('1.1') * Decimal(123456789123456789123456789)
Decimal('135802468035802468035802467.9')