python - 在使用 np.arange() 时,它以错误的步长递增
问题描述
for i in np.arange(0.0,1.1,0.1):
print(i)
输出:
0.0
0.1
0.2
0.30000000000000004
0.4
0.5
0.6000000000000001
0.7000000000000001
0.8
0.9
1.0
预期输出:
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0
解决方案
它不会以错误的步长递增,这些只是浮点错误。从这里:
这可以被认为是 Python 中的一个错误,但事实并非如此。这与 Python 关系不大,更多的是与底层平台如何处理浮点数有关。这是在系统内部处理浮点数时遇到的正常情况。这是浮点数的内部表示时引起的一个问题,它使用固定数量的二进制数字来表示十进制数。一些十进制数很难用二进制表示,所以在很多情况下,会导致小的舍入误差。
推荐阅读
- php - 为什么设置日志文件路径的 PHP 调用会失败?
- eclipse-scout - 使用基于参数的连接服务
- linux - 在Linux内核TCP实现中,为什么“sk_acceptq_is_full”使用'>'而不是'>='?
- raspberry-pi3 - 如何为 libnfc 库配置无限轮询?
- node-red - WebSocket 连接和 HTTP 身份验证失败
- sql - 如何使用 sql 查询实现以下要求
- javascript - jQuery.contains() 返回错误的输出
- vhdl - 如何在 VHDL 测试台中模拟按钮?
- java - 如何在从 Jframe 打开一段时间后关闭 JDialog
- angular - 在打字稿中访问给定属性名称的数组