python - Python对数数学奇怪的结果
问题描述
在 Python 中这种意外结果的解释是什么??!;
from math import *
>>>log(1000,10) ## expecting 3.0
2.9999999999999996
>>>1000**(1/3) ## expecting 10.0
9.999999999999998
解决方案
基本上这些函数的值是使用一些序列计算的。由于默认情况下 python 使用浮动值,因此它非常精确地计算值。你可以看到这个...
自然对数 (ln) 和取幂的有效实现 这就是它给出这些类型结果的原因。您可以使用分数中的分数类将这些值转换为整数。
推荐阅读
- java - 我在 if 和 else 语句中给出的费率没有按应有的方式加起来
- javascript - JS 等待一个递归函数来查找 Android 上的所有 MP3 文件
- android - 从命令行构建 APK 与 Android Studio 的 [绿色] 播放按钮的行为不同
- active-directory - Active Directory 中域和组织单位的区别
- zabbix - YYYYMMDD 格式的当前日期的 zabbix 宏
- java - 为什么我的 equals 语句不适用于我的广度优先搜索
- ios - CTTelephonyNetworkInfo().serviceSubscriberCellularProviders 和 CTTelephonyNetworkInfo().serviceCurrentRadioAccessTechnology 中的关键是什么
- angular - 使用 takeUntil 销毁 Angular Observable:当 ngOnDestroy 中缺少 .next() 时会发生什么
- nginx - Nginx 如何只允许访问 /api/ 端点?
- java - 将扩展名为 .xls 但另存为 xml 电子表格 2003 的文件转换为 .xls 文件格式