Dev*_*per 3 python floating-point exponent ieee-754
通常1e3
意味着10**3
.
>>> 1e3
1000.0
>>> 10**3
1000
Run Code Online (Sandbox Code Playgroud)
类似案例进行了exp(3)
比较e**3
.
>>> exp(3)
20.085536923187668
>>> e**3
20.085536923187664
Run Code Online (Sandbox Code Playgroud)
但是现在请注意,如果指数是一个float
值:
>>> exp(3.1)
22.197951281441636
>>> e**3.1
22.197951281441632
Run Code Online (Sandbox Code Playgroud)
这很好.现在是第一个例子:
>>> 1e3.1
File "<stdin>", line 1
1e3.1
^
SyntaxError: invalid syntax
>>> 10**3.1
1258.9254117941675
Run Code Online (Sandbox Code Playgroud)
这表明Python
不喜欢1e3.1
,Fortran
太.无论它可能是一个标准(!)为什么它是这样的?
Ste*_*314 13
使用的符号e
是数字文字,是许多编程语言的词法语法的一部分,基于标准形式/科学记数法.
此表示法的目的是允许您通过移动点位置来指定非常大/小的数字.它并不打算允许您将10的任意幂乘法编码为数字文字.因此,该点和后续数字甚至不被识别为数字文字标记的一部分.
如果您想要任意权力,正如您所发现的那样,有数学函数和运算符可以完成这项工作.与数字文字不同,您甚至可以在运行时确定参数值.
来自文档:
sign ::= '+' | '-'
digit ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'
indicator ::= 'e' | 'E'
digits ::= digit [digit]...
decimal-part ::= digits '.' [digits] | ['.'] digits
exponent-part ::= indicator [sign] digits #no dots allowed here
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5038 次 |
最近记录: |