我想知道如何手动增加浮点数的round-0ff限制,以便在执行功率计算时,输出在0的范围之后不会达到0.0
例如:math.pow(0.0000000000000001223,100)
0.0
我想要功率计算的实际值。我想从上面的计算输出中执行math.log函数。但由于它返回0.0我无法执行日志功能。那么我怎样才能一劳永逸地延长这一轮限制值?有没有办法解决这个问题?
请帮助!!
预期产出=
答案 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')