如何增加python中的舍入限制?

时间:2015-04-01 06:36:27

标签: python floating-point rounding

我想知道如何手动增加浮点数的round-0ff限制,以便在执行功率计算时,输出在0的范围之后不会达到0.0

例如:math.pow(0.0000000000000001223,100)

0.0

我想要功率计算的实际值。我想从上面的计算输出中执行math.log函数。但由于它返回0.0我无法执行日志功能。那么我怎样才能一劳永逸地延长这一轮限制值?有没有办法解决这个问题?

请帮助!!

预期产出=

2 个答案:

答案 0 :(得分:4)

除了努力工作以代表超出您的架构的基本功能之外的数字,您可以简单地以更加数字友好的方式重新计算您的计算:

log(x**100) --> 100*log(x)

你得到:

x = 0.9
math.log(x**100)
=> -10.536051565782628
100*math.log(x)
=> -10.536051565782628

x = 0.0000000000000001223
math.log(x**100)
=> ValueError: math domain error
100 * math.log(x)
=> -3664.0054631199696

答案 1 :(得分:-1)

您还可以使用decimals

>>>from decimal import Decimal
>>>Decimal(0.0000000000000001223)
>>>pow(n, 100)
Decimal('5.528988716402754783815478616E-1592')