- 使用此答案中
gmpy2
概述的内容。这使您可以完全控制舍入模式,但是用于简单的浮点数学运算可能会比NumPy慢。gmpy2
使用
fesetround
viactypes
手动设置舍入模式。这是特定于系统的,因为常量可能因平台而异。检查fenv.h
平台上的常量值。在我的机器上(Mac OS X):import numpy as np
import ctypes
FE_TonEAREST = 0x0000
FE_DOWNWARD = 0x0400
FE_UPWARD = 0x0800
FE_TOWARDZERO = 0x0c00
libc = ctypes.CDLL(‘libc.dylib’)v = 1. / (1<<23)
print repr(np.float32(1+v) - np.float32(v/2)) # prints 1.0
libc.fesetround(FE_UPWARD)
print repr(np.float32(1+v) - np.float32(v/2)) # prints 1.0000002
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)