np.float64和python float64的精度差异

问题描述

为什么python浮点数(或似乎)比numpy.float64更精确。这里我举个例子:

import numpy as np

ann = 72.595895691
detections = np.array([0,71.91000009999999],dtype=np.float64)
group_det = [1]
dist1 = [ann - detections[det] for det in group_det]
dist = np.zeros(len(group_det),dtype=np.float64)
for idx,det in enumerate(group_det):
    dist[idx] = ann - detections[det]
print(f'dist1: {dist1}')
print(f'dist {dist}')

此代码的输出是:

dist1: [0.6858955910000049]
dist [0.68589559]

我的问题是为什么 dist1 具有更高的精度?

注意:代码似乎是以非常复杂的方式运行的,但是我不得不以相同的方式减少代码的一部分。

解决方法

正如@hpaulj在评论中提到的那样,它不是计算精度。正在打印。将此行添加到代码中,以查看在numpy中打印时想要的精度:

np.set_printoptions(precision=16)
在上一行之后

输出代码:

dist1: [0.6858955910000049]
dist [0.6858955910000049]

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...