簡體   English   中英

在Python中更快地將float轉換為int

[英]Faster float to int conversion in Python

根據timeit統計,這是一段代碼,該代碼在我的程序中耗時最多。 將[-1.0,1.0]間隔中的浮點數轉換為無符號整數[0,2 ** 32]是一個骯臟的函數。 如何加速floatToInt

piece = []
rng = range(32)
for i in rng:
    piece.append(1.0/2**i)

def floatToInt(x):
    n = x + 1.0
    res = 0
    for i in rng:
        if n >= piece[i]:
            res += 2**(31-i)
            n -= piece[i]

    return res

您嘗試過顯而易見的嗎?

def floatToInt(x):
    return int((x+1.0) * (2**31))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM