相关疑难解决方法(0)

将浮点数限制为两个小数点

我希望a四舍五入到13.95.

>>> a
13.949999999999999
>>> round(a, 2)
13.949999999999999
Run Code Online (Sandbox Code Playgroud)

round功能不像我预期的那样工作.

python floating-point precision rounding

1527
推荐指数
28
解决办法
287万
查看次数

Python中不准确的对数

我每天都在我的公司用Python 2.4工作.我使用了标准数学库中的多功能对数函数'log',当我输入log(2**31,2)时,它返回31.000000000000004,这让我感到有点奇怪.

我用2的其他力量做了同样的事情,它完美地运作了.我跑了'log10(2**31)/ log10(2)',我得到了一轮31.0

我尝试在Python 3.0.1中运行相同的原始函数,假设它是在更高级的版本中修复的.

为什么会这样?Python中的数学函数有可能存在一些不准确之处吗?

python math floating-point

9
推荐指数
4
解决办法
6324
查看次数

另一个浮点问题

我已经阅读了关于浮点的大部分帖子,我理解使用IEEE 754的基本问题(并且仅仅通过以二进制形式存储数字的性质)某些分数无法表示.我试图找出以下内容:如果Python和JavaScript都使用IEEE 754标准,为什么在Python中执行以下操作?

.1 + .1

结果在0.20000000000000001(这是预期的)

在Javascript(至少在Chrome和Firefox中)的答案是.2

然而表演

.1 + .2

在两种语言中结果为0.30000000000000004

另外,执行var a = 0.3; 在JavaScript中打印结果为0.3

在Python中执行a = 0.3的结果为0.29999999999999999

我想了解这种行为差异的原因.

此外,OS上的许多帖子都链接到Java的BigDecimal的JavaScript端口,但链接已经死了.有人有副本吗?

javascript python floating-point

5
推荐指数
1
解决办法
324
查看次数

标签 统计

floating-point ×3

python ×3

javascript ×1

math ×1

precision ×1

rounding ×1