结果:from bs4 import BeautifulSoup
html = """
<html>
<head></head>
<body>
<!--[if lte IE 8]> <!-- data-module-name="test"--> <![endif]-->
<![endif]-->
<a href="test"></a>
<a href="test"></a>
<a href="test"></a>
<a href="test"></a>
<!--[if lte IE 8]>
<![endif]-->
</body>
</html>
"""
soup = BeautifulSoup(html, 'html.parser')
tags = soup.find_all('a')
print(tags)
预期:import mpmath as mp
mp.prec = 20
mp.nprint(mp.sqrt(2), 20)
(根据this reference)
答案 0 :(得分:0)
有趣的情况。使用python Decimal
可以得到与您列出的参考相同的结果,但是使用float
或math.sqrt()
似乎可以得到不同的结果。
>>> from decimal import Decimal
>>> '{:.25f}'.format(2**0.5) # Result 1
'1.4142135623730951454746219'
>>> '{:.25f}'.format(math.sqrt(2)) # Result 1
'1.4142135623730951454746219'
>>> '{:.25f}'.format(math.sqrt(Decimal('2'))) # Result 1
'1.4142135623730951454746219'
>>> '{:.25f}'.format(Decimal('2') ** Decimal('0.5')) # Result 2
'1.4142135623730950488016887'
# The reference you listed # Result 2
'1.4142135623730950488016887'
您的图书馆可能在内部使用float
。
但是我认为这是正常现象,不是错误,因为float
并不意味着100%精确;它们本来可以在机器上快速运行。
答案 1 :(得分:0)
mp.prec
是二进制精度。 mp.dps
是小数点。
In [588]: mpmath.mp.dps=20
In [589]: mpmath.sqrt(2)
Out[589]: mpf('1.4142135623730950488011')
使用此设置:
In [590]: print(mpmath.mp)
Mpmath settings:
mp.prec = 70 [default: 53]
mp.dps = 20 [default: 15]
mp.trap_complex = False [default: False]
cf为默认
Mpmath settings:
mp.prec = 53 [default: 53]
mp.dps = 15 [default: 15]
mp.trap_complex = False [default: False]