python - 简单的脚本是在数学中添加随机零?
问题描述
好的,所以我制作了一个简单的脚本,因为我很懒,只想在其中添加公里数,以便弹出所需的信息...虽然我知道将变量更改为 int() 给了我所需的正确信息,但没有它我收到一个奇怪的输出,我现在知道它是如何创建的。这是脚本:
KMstandNu = 186645
KMsnaarhuisenterug = 18.7 * 2
KMnaarPascalenterug = 8.2 * 2
Wednesday2 = KMstandNu - KMsnaarhuisenterug
Wednesday1 = Wednesday2 - KMnaarPascalenterug
Tuesday2 = Wednesday1
Tuesday1 = Tuesday2 - KMnaarPascalenterug
print("22 oktober: " + str(Tuesday1) + " - " + str(Tuesday2))
print("23 oktober: " + str(Wednesday1) + " - " + str(Wednesday2))
输出:
22 oktober: 186574.80000000002 - 186591.2
23 oktober: 186591.2 - 186607.6
好的,哪位聪明的头脑可以帮助我弄清楚为什么星期二 1 得到 9 个零和 2 落后于正确的数学???
解决方案
这是因为浮点精度。尝试使用十进制而不是浮点数:
from decimal import getcontext, Decimal
getcontext().prec = 10
KMstandNu = 186645
KMsnaarhuisenterug = Decimal(18.7) * 2
KMnaarPascalenterug = Decimal(8.2) * 2
Wednesday2 = KMstandNu - KMsnaarhuisenterug
Wednesday1 = Wednesday2 - KMnaarPascalenterug
Tuesday2 = Wednesday1
Tuesday1 = Tuesday2 - KMnaarPascalenterug
print("22 oktober: " + str(Tuesday1) + " - " + str(Tuesday2))
print("23 oktober: " + str(Wednesday1) + " - " + str(Wednesday2))
输出:
10 月 22 日:186574.8000 - 186591.2000
10 月 23 日:186591.2000 - 186607.6000
推荐阅读
- android - 用两个字符串数组填充 MultiColumn ListView
- javascript - 用 Jest 测试 jQuery 动画
- android-webview - 在 NativeScript 应用程序中加载本地 HTML/JavaScript/CSS
- python - 在二维数组中的指定索引处插入字符串
- ruby-on-rails - 如何调试 AWS S3“拒绝访问”
- java - Maven War Plugin Exclusions(需要排除整个目录)
- javascript - 键入数组中的第一项后,键入动画光标消失
- angular - ionic v4(beta) / ionic4 - 需要的最低节点/角度版本是多少?
- laravel-5 - 如何在 Laravel 中按日期排序消息
- python-3.x - 将抓取的数据导出到 CSV