相关疑难解决方法(0)

浮点数学是否破碎?

请考虑以下代码:

0.1 + 0.2 == 0.3  ->  false
Run Code Online (Sandbox Code Playgroud)
0.1 + 0.2         ->  0.30000000000000004
Run Code Online (Sandbox Code Playgroud)

为什么会出现这些不准确之处?

language-agnostic math floating-point floating-accuracy

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

C和Python - 模数(%)操作的不同行为

我发现相同的mod操作会产生不同的结果,具体取决于使用的语言.

在Python中:

-1 % 10
Run Code Online (Sandbox Code Playgroud)

产生9

在C中它产生-1!

  1. 哪一个是正确的模数?
  2. 如何使C中的mod操作与Python中的相同?

c python math modulo

63
推荐指数
5
解决办法
2万
查看次数

Python中的Modulo运算符

以下代码中的模数是做什么的?

from math import *
3.14 % 2 * pi
Run Code Online (Sandbox Code Playgroud)

我们如何计算浮点数的模数?

python operators python-3.x

53
推荐指数
2
解决办法
37万
查看次数

浮点数上的Python模数

任何人都可以解释模运算符在Python中的工作原理吗?我不明白为什么3.5 % 0.1 = 0.1.

python modulo

36
推荐指数
2
解决办法
4万
查看次数

%对Python中的字符串做了什么?

我没有找到运算符%的文档,因为它在Python中的字符串上使用.有人知道文档的位置吗?

python string documentation operators

25
推荐指数
4
解决办法
4万
查看次数

具有负值的模数运算 - 奇怪的是什么?

你能告诉我多少钱(-2) % 5?根据我的Python解释器是3,但你有一个明智的解释吗?

我读过在某些语言中,结果可能与机器有关,但我不确定.

python math modulo

17
推荐指数
4
解决办法
1万
查看次数

Python与Java中的模数实现之间的差异

我注意到Python和Java中模数运算符的不同实现.

例如,在Python中:

>>> print -300 % 800
>>> 500
Run Code Online (Sandbox Code Playgroud)

在Java中:

System.out.println(-300 % 800);
-300
Run Code Online (Sandbox Code Playgroud)

这让我措手不及,因为我认为像模数一样基本的东西被普遍解释为同样的方式.我喜欢Python的解释(我认为它是从C借用的),尽管我看到了Java实现背后的逻辑.

你通常更喜欢哪一个?有不同解释的具体原因吗?我无意开始语言大战,只是好奇.

python java modulo

14
推荐指数
1
解决办法
5009
查看次数

对python负十进制的模运算.Decimal和一个正int

用简单的ints:

>>> -45 % 360
315
Run Code Online (Sandbox Code Playgroud)

然而,使用decimal.Decimal:

>>> from decimal import Decimal
>>> Decimal('-45') % 360
Decimal('-45')
Run Code Online (Sandbox Code Playgroud)

我希望得到Decimal('315').

这有什么理由吗?有没有办法获得一致的行为(没有修补decimal.Decimal)?(我没有改变上下文,也找不到如何改变它来解决这种情况).

python decimal python-3.x

7
推荐指数
2
解决办法
1203
查看次数

模数为Python中的负红利

正在查看其他答案,我仍然不理解python中负数的模数

例如df的回答

x == (x/y)*y + (x%y)
Run Code Online (Sandbox Code Playgroud)

所以有意义的是(-2)%5 = -2 - (-2/5)*5 = 3

这不是(-2 - (-2/5)*5)= 0还是我只是疯了? 具有负值的模数运算 - 奇怪的是什么?

python中的这个负数模数相同 他从哪里得到-2?

最后,如果该标志取决于股息,为什么负股息与正面股票的产出不相同?

例如,输出

print([8%5,-8%5,4%5,-4%5])
Run Code Online (Sandbox Code Playgroud)

[3, 2, 4, 1]
Run Code Online (Sandbox Code Playgroud)

python modulo

6
推荐指数
2
解决办法
5910
查看次数

使用Python中的负操作数进行整数除法和模运算

当我在Python 3.3.0中输入这些表达式时会出现问题

-10 // 3  # -4
-10 % 3   #  2
10 // -3  # -4
10 % -3   # -2
-10 // -3 #  3
Run Code Online (Sandbox Code Playgroud)

它似乎需要近似浮点(-3.33)?并且在整数除法中向下舍入,但在模运算中它做了完全不同的事情.看起来它返回余数+/- 1并且仅根据负操作数的位置切换符号.即使在查看本网站上的其他答案之后,我也完全感到困惑!我希望有人能够清楚地解释这个我!这本书提示:回想一下这个神奇的公式a =(a // b)(b)+(a%b),但这似乎根本不能为我清除水.

-提前致谢!

编辑:这些只是我对发生的事情的个人评估(上图),我知道,我完全不在了!

python modulo integer-division negative-number operand

6
推荐指数
2
解决办法
5863
查看次数