浮点零和日志

时间:2017-09-16 19:06:41

标签: python-3.x floating-point

我的函数收到一个浮点数,我尝试在出现问题之前捕获零,但它无效。它挂在这里:

exp = -math.ceil(math.log(v, 2))
def logfun(v):
    if v < 0:
        v = -v
    if int(v) == 0:
        exp = 0
    if v >= 1:
        exp = math.floor(math.log(v, 2))
    if v < 1:
        exp = -math.ceil(math.log(v, 2))
    return(exp)

logfun(0.0)
  

ValueError:数学域错误

1 个答案:

答案 0 :(得分:0)

你写道:

if v < 1:
    exp = -math.ceil(math.log(v, 2))

这意味着如果v0,那么这个正文将会触发。由于它不是elif,因此不会产生太大影响。

您可以elif使用return 0,或int(v) == 0 def logfun(v): if v < 0: v = -v if int(v) == 0: return 0 if v >= 1: return math.floor(math.log(v, 2)) if v < 1: return -math.ceil(math.log(v, 2)),例如:

v < 1

话虽如此,如果int(v) == 0,则表示此处为def logfun(v): if v < 0: v = -v if int(v) == 0: return 0 else: return math.floor(math.log(v, 2)),因此您可以省略该案例。成功:

      wvChat.setWebViewClient(new WebViewClient() {
                     @Override
                     public void onPageCommitVisible(WebView view, String url) {
                        wvChat.pageDown(true);
                     }
                 });