2015-04-01 71 views
0

我想知道如何手动增加一个浮点数的圆的0xFF限制,以便在执行功率计算,输出不会在0.0的范围后,最终0的如何增加python的舍入限制?

例如:math.pow(0.0000000000000001223,100)

0.0 

我想在这里计算功率的实际值..我想从上面的计算输出中执行math.log函数。但自从它返回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 
+0

不,我需要先执行math.pow(x,100),然后计算该值.. – Wolf 2015-04-01 06:55:06

+0

为什么命令重要? – shx2 2015-04-01 06:55:52

+0

你得到这个错误,因为log(x)在0.0的特定时间间隔后是0.0 ..我在问如何扩展这个限制 – Wolf 2015-04-01 06:58:17

-1

您还可以使用decimals

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

那你怎么接受这个'math.log'? – shx2 2015-04-01 06:46:37

+0

与任何其他数字完全相同:) – matino 2015-04-01 06:53:14

+0

然后,您需要使用不同的算法或计算机;) – matino 2015-04-01 06:56:47