我知道浮点数的精度有限。但我不明白为什么64位浮点(我假设是)会溢出这些值:
ipdb> (-1e+10 - 0.01)
-10000000000.01 # 0.01 still visible
ipdb> (-1e+20 - 0.01)
-1e+20 # 0.01 is gone, I assume because of floating point precision
这可能是相关的:
ipdb> sys.float_info
sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1)
请注意,我要解决的实际问题是将这些值规范化为介于0和1之间[-1.3229999632394e+32, 15000.0, -11.432000160217285, -11.321000099182129]
比如说,你不需要有这样的精确性
将输出:
缩放也起作用
从bigfloat导入精度,bigfloat
相关问题 更多 >
编程相关推荐