python - 打印函数返回不同的值
问题描述
大家好,我在 Windows 10 64 位操作系统上使用 python 2.7 32,我得到了一些奇怪的结果。
运行以下代码时
from numpy import sin, pi
for i in range(6, 10):
x = 10**-i
print(sin(x*pi)/x/pi)
print(sin(x*pi)/x/pi, i)
我得到不同的结果,虽然它是相同的数学
0.999999999998
(0.99999999999835498, 6)
1.0
(0.99999999999998357, 7)
1.0
(0.99999999999999967, 8)
1.0
(1.0, 9)
当我从未来导入打印功能时,我得到了相同的结果。只是好奇为什么会发生这种情况?
注意:虽然打印不同,但如果我比较它们,我会得到相同的结果。
解决方案
您正在使用第一个命令打印浮点数,并使用第二个命令打印元组。这些在打印时以不同级别的准确度表示。
您可以通过自己指定准确性来简单地验证它:
from numpy import sin, pi
for i in range(6, 10):
x = 10**-i
print("{0:.30f}".format(sin(x*pi)/x/pi)) # print with more accuracy
print(sin(x*pi)/x/pi, i)
输出:
0.999999999998354982544412905554 # more accuracy and (if rounded) same as the tuple value
(0.999999999998355, 6)
0.999999999999983568699235547683
(0.9999999999999836, 7)
0.999999999999999666933092612453
(0.9999999999999997, 8)
1.000000000000000000000000000000
(1.0, 9)
@Bamar 在评论中回答了同样的问题——这只是更“可见”。
推荐阅读
- javascript - 从 JSON 字符串元素中提取 JSON 表
- django - Docker 上的 Django 不安装 mysqlclient
- javascript - 参考错误:控制台未定义 java 脚本 i cmd
- android - Android谨慎的搜索栏不显示低于2的最大值的刻度线
- reactjs - 为图像设置我的 webpack 配置时出现问题
- bootstrap-4 - Bootstrap 4 响应式菜单停止响应:-/
- node.js - 带猫鼬和参考的汽车预订
- sql - 如何在 PowerShell SQL 查询中替换变量
- android - 如何从 Glide 获取图像的宽度和高度
- calendar - 使用 applescript 创建带有弹出对话框的日历事件