本网站由以下捐款支持:OEIS基金会.

帮助:计算

来自OeisWiki
跳转到:航行,搜索


这篇文章正在建设中。            

请不要依赖其中包含的任何信息。            


这个精度格式数字因服务器而异;即使在单个页面上,尽管对于任何渲染,页面内都有一致性,但渲染之间没有一致性。


MediaWiki扩展分析器函数使用户能够执行简单的数学计算。

这个#快递:解析器函数(另请参见{{快递}}数学函数模板)评估数值表达式、以及布尔表达式涉及数字布尔运算(不是). 语法是

{{#快递: 表达}}

上述语法中显示的空格不是必需的,但数字中不允许有空格。

支持的运算符(大致按照优先级从高到低的顺序)为

  1. ,
  2. 一元的+,一元-,
  3. ^,
  4. *,/,div公司,国防部,
  5. 二元的+,二进制-,
  6. ,
  7. =,<>!=,<=,>=,<,>,
  8. ,
  9. .

允许的最大和最小数量

囊性纤维变性。允许的最大和最小数量.

操作员

无操作员
操作员/函数模板 操作 示例
没有人 没有人
{{#表达式:123456789012345}} 1.2345678901234E+14
{{#表达式:1.23456789012345}} 1.2345678901235
{{#expr:.000001}} 1.0E-6号机组
{{#表达式:.00000123456789012345}} 1.2345678901234E-6号
{{#expr:.123e4}}} 1230
{{#expr:123E-2}} 1.23
{{#expr:-123E-2}} -1.23
{{#expr:-9.5E300}} -9.5东经+300
{{#expr:-9.5E-300}} -9.5E-300型
{{#expr:e}} 2.718281828459
{{#expr:pi}} 3.1415926535898
{{快递|圆周率} 3.1415926535898

错误:

{{#expr:e4}} 表达式错误:意外数字。

Sgn功能模板和abs/trunc/floor/ceil操作符

Sgn函数模板和Abs/trunc/floor/ceil运算符
操作员/函数模板 操作 示例
sgn公司(不支持)

{{sgn公司}}

Sign函数
{{#expr:sgn-1.2}} 表达式错误:无法识别单词“sgn”。
{{#expr:sgn0}} 表达式错误:无法识别的单词“sgn”。
{{#expr:sgn1.2}} 表达式错误:无法识别单词“sgn”。
{{sgn公司|-1.2}} -1
{{sgn公司|0}} 0
{{sgn公司|1.2}} 1
腹肌

{{腹肌}}

绝对值
{{#expr:abs-1.2}} 1.2
{{#expr:abs 0}} 0
{{#expr:abs1.2}} 1.2
{{math|{{abs|{{op|-}}1.2}{{=}}{{abs |{op|-o}}1.2|}}&}}
|  − 1.2 |
= 1.2
{{math|{{abs|0}}}{=}}{abs|0|#}}|&}}
|0 |
= 0
{{math|{abs|1.2}}{{=}}{abs|1.2|}}&}}
|1.2 |
= 1.2
特朗克 截断(四舍五入为0)
{{#expr:trunc 1.2}} 1
{{#expr:trunc-1.2}} -1
{{特朗克|1.2}} 模板:Trunc
{{特朗克|-1.2}} 模板:Trunc
地板

{{地板}}

楼层功能(四舍五入)
{{#expr:楼层1.2}}} 1
{{#expr:楼层-1.2}} -2
{{math|{floor|1.2}}{{=}}{floor|1.2|#}}|&}}
  1.2⌋
= 1
{{math|{floor|{{op|-}}1.2}}{{=}}{floor|{op|-o}}1.2|#}}|&}}
   − 1.2⌋
=  − 2
天花板

{{天花板}}

天花板功能(向四舍五入)
{{#expr:ceil 1.2}} 2
{{#expr:ceil-1.2}} -1
{{math|{{ceil|1.2}}{{=}}{ceil|1.2|}}&}}
1.2⌉
= 2
{{math|{{ceil|{{op|-}}1.2}{{=}}{{ceil |{op|-o}}1.2|#}}&}}
  − 1.2⌉
=  − 1

指数/对数运算符和函数模板

指数/对数运算符
操作员/函数模板 操作 示例
经验 自然指数
{{#expr:exp 1.2}} 3.3201169227365
{{#expr:e^1.2}} 3.3201169227365
{{经验|1.2}} 模板:Exp
自然对数

日志(不支持)

{{日志}}{{自然对数}}{{日志(_e)}}(底座e(电子))


{{日志_2}}(基数2)

{{log_10(日志_10)}}(以10为基数)

{{日志_b}}(基数b)


自然对数



二进制对数

十进制对数

对数基数b

{{#expr:ln2}} 0.69314718055995
{{#expr:log 2}} 表达式错误:无法识别单词“log”。
{{自然对数|2}} 0.69314718055995
{{日志|2}} 0.69314718055995
{{日志(_e)|2}} 0.69314718055995

因此二进制对数 日志_2例如10:

{{日志_2|10}} 3.3219280948874
{{#expr:ln 10/ln 2}} 3.3219280948874

因此普通对数 log_10(日志_10)例如2:

{{log_10(日志_10)|2}} 0.30102999566398
{{#expr:ln 2/ln 10}} 0.30102999566398

因此,基础 对数 日志_b例如2(基数5):

{{日志_b|2|5}} 0.43067655807339
{{日志_b|2|基=5}} 0.43067655807339
{{#expr:ln2/ln5}} 0.43067655807339

三角运算符和函数模板

循环运算符和函数模板

循环运算符和函数模板
操作员/函数模板 操作 示例

{{}}

正弦
{{#expr:sin0.1}} 0.099833416646828
{{|0.1}} 0.099833416646828

角度以度为单位,例如30°:

{{#expr:sin(30*pi/180)}} 0.5
{{|30*pi/180}} 0.5
科斯

{{科斯}}

余弦
{{#表达式:cos 0.1}} 0.99500416527803
{{科斯|0.1}} 0.99500416527803
棕褐色的

{{棕褐色的}}

切线
{{#expr:tan 0.1}} 0.10033467208545
{{棕褐色的|0.1}} 0.10033467208545
csc公司(不支持)

{{csc公司}}

余割
{{#expr:1/(sin0.1)}} 10.016686131635
{{#expr:csc0.1}} 表达式错误:无法识别的单词“csc”。
{{csc公司|0.1}} 模板:Csc
(不支持)

{{}}

割线
{{#表达式:1/(cos0.1)}} 1.0050209184005
{{#expr:秒0.1}} 表达式错误:无法识别单词“sec”。
{{|0.1}} 模板:秒
帆布床(不支持)

{{帆布床}}

余切
{{#expr:1/(tan 0.1)}} 9.9666444232592
{{#expr:cot10}} 表达式错误:无法识别单词“cot”。
{{帆布床|10} } 模板:Cot
电弧正弦

阿辛

{{电弧正弦}}

{{阿辛}}

反正弦
{{#expr:arcsin 0.1}} 表达式错误:无法识别单词“arcsin”。
{{#expr:asin 0.1}} 0.10016742116156
{{电弧正弦|0.1}} 0.10016742116156
{{阿辛|0.1}} 0.10016742116156
电弧炉

acos公司

{{电弧炉}}

{{acos公司}}

反余弦
{{#expr:arccos 0.1}} 表达式错误:无法识别的单词“arccos”。
{{#expr:acos 0.1}} 1.4706289056333
{{电弧炉|0.1}} 1.4706289056333
{{acos公司|0.1}} 1.4706289056333
阿卡坦

阿坦

{{阿卡坦}}

{{阿坦}}

反正切
{{#expr:arctan 0.1}} 表达式错误:无法识别单词“arctan”。
{{#expr:atan 0.1}} 0.099668652491162
{{阿卡坦|0.1}} 0.099668652491162
{{阿坦|0.1}} 0.099668652491162
电弧炉2(不支持)

数据2(不支持)

{{电弧炉2}}

{{数据2}}

四象限圆弧切线


(默认切割位置π弧度,cut=奇数)
(切于弧度,cut=偶数)

{{数据2|y=0|x=1}} 0
{{数据2|y=1|x=0} 1.5707963267949
{{数据2|y=0|x=-1}} 3.1415926535898
{{数据2|y=-1|x=0} -1.5707963267949
{{数据2|y=0|x=1|cut=2}} 0
{{数据2|y=1|x=0|切割=2}} 1.5707963267949
{{数据2|y=0|x=-1|切割=2}} 3.1415926535898
{{数据2|y=-1|x=0|切割=2}} 4.7123889803847
电弧电流控制(不支持)

acsc公司(不支持)

{{电弧电流控制}}

{{acsc公司}}

弧余割
{{#expr:asin(1/10)}} 0.10016742116156
{{#expr:acsc 10}} 表达式错误:无法识别单词“acsc”。
{{阿辛|1 / 10}} 0.10016742116156
{{acsc公司|10}} 模板:Acsc
电弧秒(不支持)

东盟(不支持)

{{电弧秒}}

{{东盟}}

圆弧割线
{{#expr:acos(1/10)}} 1.4706289056333
{{#expr:asec10}} 表达式错误:无法识别单词“asec”。
{{acos公司|1 / 10}} 1.4706289056333
{{东盟|10}} 模板:Asec
电弧炉(不支持)

阿科特(不支持)

{{电弧炉}}

{{阿科特}}

圆弧余切
{{#expr:atan(1/10)}} 0.099668652491162
{{#expr:acot10}} 表达式错误:无法识别单词“acot”。
{{阿坦|1/10}} 0.099668652491162
{{阿科特|10}} 模板:Acot

双曲运算符和函数模板

双曲运算符和函数模板
操作员/函数模板 操作 示例
新的(不支持)

{{新的}}

双曲正弦
{{#expr:sinh 0.1}}} 表达式错误:无法识别单词“sinh”。
{{新的|0.1}} 0.10016675001984
科什(不支持)

{{科什}}

双曲余弦
{{#expr:cosh 0.1}} 表达式错误:无法识别单词“cosh”。
{{科什|0.1}} 1.0050041680558
坦纳(不支持)

{{坦纳}}

双曲线切线
{{#expr:tanh 0.1}} 表达式错误:无法识别单词“tanh”。
{{坦纳|0.1}} 0.099667994624956
csch公司(不支持)

{{csch公司}}

双曲余割
{{#expr:csch 0.1}} 表达式错误:无法识别单词“csch”。
{{csch公司|0.1}} 模板:Csch
(不支持)

{{}}

双曲正割
{{#表达式:秒0.1}} 表达式错误:无法识别单词“sech”。
{{|0.1}} 模板:Sech
帆布床(不支持)

{{帆布床}}

双曲余切
{{#expr:coth 0.1}} 表达式错误:无法识别单词“coth”。
{{帆布床|0.1}} 10.033311132254
阿辛(不支持)

反双曲正弦(不支持)

{{阿辛}}

{{反双曲正弦}}

反双曲正弦
{{#expr:arsinh 0.1}} 表达式错误:无法识别单词“arsinh”。
{{#expr:asinh 0.1}} 表达式错误:无法识别的单词“asinh”。
{{阿辛|0.1}} 0.099834078899208
{{反双曲正弦|0.1}} 模板:Asinh
阿科什(不支持)

乌头(不支持)

{{阿科什}}

{{乌头}}

反双曲余弦
{{#expr:arcosh 0.1}} 表达式错误:无法识别单词“arcosh”。
{{#expr:acosh 0.1}} 表达式错误:无法识别单词“acosh”。
{{阿科什|3.1}} 1.7974565682677
{{乌头|3.1}} 模板:Acosh
阿坦(不支持)

反双曲正切(不支持)

{{阿坦}}

{{反双曲正切}}

反双曲正切
{{#expr:artanh 0.1}} 表达式错误:无法识别单词“artanh”。
{{#expr:atanh 0.1}} 表达式错误:无法识别单词“atanh”。
{{阿坦|0.1}} 0.10033534773108
{{反双曲正切|0.1}} 模板:Atanh
阿尔奇(不支持)

反双曲余割(不支持)

{{阿奇}}

{{反双曲余割}}

反双曲余割
{{#expr:arcsch 0.1}} 表达式错误:无法识别的单词“arcsch”。
{{#expr:acsch 0.1}} 表达式错误:无法识别单词“acsch”。
{{阿奇|0.1}} 模板:Arcsch
{{反双曲余割|0.1}} 模板:Acsch
(不支持)

阿塞奇(不支持)

{{}}

{{阿塞奇}}

反双曲正割
{{#expr:arsech 0.1}} 表达式错误:无法识别的单词“arsech”。
{{#expr:asech0.1}} 表达式错误:无法识别单词“asech”。
{{|3.1}} 模板:Arsech
{{阿塞奇|3.1}} 模板:Asech
电弧炉(不支持)

反双曲余切(不支持)

{{电弧炉}}

{{反双曲余切}}

反双曲余切
{{#expr:arcoth 0.1}}} 表达式错误:无法识别单词“arcoth”。
{{#expr:acath 0.1}} 表达式错误:无法识别单词“acoch”。
{{电弧炉|0.1}} 模板:Arcoth
{{反双曲余切|0.1}} 模板:Acoth

一元算术运算符

一元算术运算符
操作员/函数模板 操作 示例
+ 一元+签名
{{#表达式:+12}} 12
{{#expr:++12}} 12
{{#表达式:+-12}} -12
- 一元-签名(否定)
{{#表达式:-12}} -12
{{#expr:-+12}}} -12
{{#expr:--12}} 12

一元逐位运算符

一元逐位运算符
操作员/函数模板 操作 示例
{{(~)}} 按位取反
{{(~)| 0 }} 模板:(~)
{{(~)|1}} 模板:(~)
{{(~)| 2 }} 模板:(~)
{{(~)| 9 }} 模板:(~)

一元逻辑运算符

一元逻辑运算符
操作员/函数模板 操作 示例
逻辑NOT
{{#expr:非-1}} 0
{{#expr:0^(abs-1)}} 0
{{#expr:不是-1}} 1
 
{{#expr:不是0}} 1
{{#expr:0^(abs 0)}} 1
{{#expr:不是0}} 0
 
{{#expr:不是0.3}} 0
{{#expr:0^(abs 0.3)}} 0
{{#expr:不是0.3}} 1
 
{{#expr:不是1}} 0
{{#expr:0^(abs 1)}} 0
{{#expr:不是1}} 1
 
{{#expr:不是2}} 0
{{#expr:0^(abs 2)}} 0
{{#expr:不是2}} 1

二进制算术运算符

二进制算术运算符
操作员/函数模板 操作 示例
^^(不支持)

{{^^}}

迭代幂次:
  • 四功率()或
  • 四指数()
{{#expr:2^^7}} 表达式错误:意外的^运算符。
{{^^|2|4}} 65536
{{^^|3|3}} 7625597484987
{{^^|5|0}} 1
{{^^|0|0}} 1
{{^^|电子|3}} 3814279.1047602
{{^^|(1/e)^e|32}} 0.53143981759252
{{^^|2|.5}} 四分位错误:第二个参数(高度)必须是非负整数
{{^^|-2|1}} -2
{{^^|-2|.5}} 四分位错误:第二个参数(高度)必须是非负整数
^ 指数化:
  • 权力()或
  • 指数()
{{#expr:2^7}} 128
{{#expr:2^-7}} 0.0078125
{{#expr:(-2)^7}} -128
{{#表达式:(-2)^8}} 256
{{#expr:2^1.2}} 2.2973967099941
{{#expr:2^.5}} 1.4142135623731
{{#表达式:(-2)^1.2}} NAN公司
{{#expr:(-2)^.5}}} NAN公司
* 乘法
{{#expr:30*7}} 210
{{#expr:30*-7}} -210
帮助:计算/ 实数除法
{{#expr:30/7}} 4.2857142857143
{{#expr:30/-7}} -4.2857142857143
{{#expr:60/11}} 5.4545454545455
{{#expr:30/13}} 2.3076923076923
{{#expr:-24/7}} -3.4285714285714
{{#表达式:51.5/7}} 7.3571428571429
div公司

\(不支持)

整数除法
错误的结果!
{{#expr:30\7}} 表达式错误:无法识别标点符号“\”。  
{{#expr:30div7}} 4.2857142857143 (应为4)
{{#expr:30div-7}} -4.2857142857143 (应为-5)
{{#expr:60 div 11}} 5.4545454545455 (应为5)
{{#expr:30div13}} 2.3076923076923 (应为2)
{{#表达式:-24 div 7}} -3.4285714285714 (应为-4)
{{#表达式:51.5 div 7}} 7.3571428571429 (应为7)

使用{{div公司}}改为模板
{{div公司|30|7}} 模板:Div (应为4)
{{div公司|30|-7}} 模板:Div (应为-5)
{{div公司|60|11}} 模板:Div (应为5)
{{div公司|30|13}} 模板:Div (应为2)
{{div公司|-24|7}} 模板:Div (应为-4)
{{div公司|51.5|7}} 模板:Div (应为7)
国防部

%(不支持)

(余数将两个操作数截断为整数后的除法)

PHP运算符%

警告:div公司国防部不同于所有编程语言。
此问题已修复(但需要提交),请参阅布齐拉:6068.

{{#expr:30 mod 7}}} 2  
{{#expr:30%7}} 表达式错误:无法识别标点符号“%”。  
{{#expr:30模式-7}} 2  
{{#expr:-30模块7}} -2  
{{#expr:-30模式-7}} -2  
{{#expr:-8模式-3}} -2  
{{#expr:-8模式2.9}} 0 (应为2.6)
{{#expr:-8模块3.2}} -2 (应为1.6)
{{#expr:8.9模块3}} 2 (应为2.9)
+ 添加
{{#expr:30+7}} 37
- 减法
{{#expr:30-7}} 23

二进制逐位运算符

二进制逐位运算符
操作员/函数模板 操作 示例
{{(*)}} 按位与
{{(*)| 2 | 7 }} 模板:(*)
{{(^)}} 按位异或
{{(^)| 2 | 7 }} 模板:(^)
{{(+)}} 按位或
{{(+)| 2 | 7 }} 模板:(+)

Round运算符

Round运算符
操作员/函数模板 操作 示例
将左侧的数字四舍五入为10的幂-1右侧给出(PHP函数)


注:这个操作员使用PHP具有的函数​$模式默认值:

浮点舍入(浮点$val[,int$precision=0[,int$模式=PHP_round_HALF_UP]])
{{#expr:4.2857轮3}} 4.286
{{#expr:4.2857圆0}} 4
{{#expr:42857轮-2}} 42900
{{#expr:4.5轮0}}} 5
{{#expr:-4.5轮0}} -5个

比较运算符

比较运算符
操作员/函数模板 操作 示例
= 平等(数值等式包括。逻辑等式)
{{#expr:3=03.0}} 1
!= 不平等,与相同<>,逻辑异或
{{#expr:3!=03.0}} 0
{{#expr:3!=4}} 1
<> 不平等,与相同!=
{{#expr:3<>03.0}} 0
{{#expr:3<>4}} 1
< 小于
{{#expr:3<2}} 0
{{#expr:3<3}} 0
{{#expr:3<4}} 1
> 大于
{{#expr:3>2}} 1
{{#expr:3>3}} 0
{{#expr:3>4}} 0
<= 小于或等于
{{#expr:3<=2}} 0
{{#expr:3<=3}} 1
{{#expr:3<=4}} 1
>= 大于或等于
{{#expr:3>=2}} 1
{{#expr:3>=3}} 1
{{#expr:3>=4}}} 0

二进制逻辑运算符

二进制逻辑运算符
操作员/函数模板 操作 示例
逻辑与
{{#expr:3和4}} 1
{{#expr:0和3}} 0
{{#expr:-3和0}} 0
{{#expr:0和0}} 0
逻辑OR
{{#expr:3或4}} 1
{{#expr:0或3}} 1
{{#expr:-3或0}} 1
{{#expr:0或0}} 0

这个布尔运算考虑0成为““以及任何非零数成为“真的“.中间或最终结果”真的“用1标识。因此{{#表达式:(2<3)+1}}2.注意“and”和“or”与#快递:#ifexpr:仅限;用于#如果:,#如果eq:、和#如果存在:,使用1作为then-text,使用0作为else-text,并将结果与““和”“在外面#经验:#ifexpr:。而不是{{#expr:{{if:{{a}}|1|0}}或{{if:{{b}}|1|0}}我们也可以使用{{#if:{{a}}{{b}}|10}}}对于否定,只需从1中减去或交换then和else部分。

优先

{{#expr:2-3+4/5*6}}3.8

(+和-具有同等优先级,*和/也高于前两者)。

{{#expr:2=5<3+4}}1

(先是+,然后是=,然后是<)。

{{#expr:1.234+1.234回合1+1}}2.47

(先添加,然后舍入)

{{#expr:3*4模块10*10}}20

(mod和乘法具有同等优先级,从左到右求值)

括号可以强制使用不同的优先级:{{表达式:(2+3)*4}}20

空白对可读性很好,但不需要正常工作,除非介于和相邻的和/div/mod/not/或/round运算符,不允许在数字内

代码 结果
{{#expr:7mod3}} 1
{{#expr:7.5round0}} 8
{{#expr:0和1}}} 0
{{#expr:0或not0}} 1
{{#expr:0ornot0}} 表达式错误:无法识别单词“ornot”。
{{#expr:123456}} 表达式错误:意外数字。
{{#expr:非not3}} 1
{{#expr:notnot 3}} 表达式错误:无法识别单词“notnot”。
   
{{#expr:---2}} -2
{{#expr:-+-2}} 2
{{#expr:2*-3}} -6
{{#expr:-not-not0}} -1
{{#expr:2*/3}} 表达式错误:意外的/operator。
{{#expr:sinln1.1}} 0.095165945236752
{{#expr:sin ln1.1}} 0.095165945236752

数字作为输入

允许使用前导零、尾随小数点(对于整数)和带小数点的数字中的尾随零。

代码 结果
{{#expr:+01.20}} 1.2
{{表达式:12.}} 12

这些等效项也与#ifeq和#switch有关,请参见下文。

[1]我们有

定义(“EXPR_NUMBER_CLASS”,“0123456789.”);...elseif(false!==strpos(EXPR_NUMBER_CLASS,$char)){//编号if($expecting!='expression'){抛出新的ExprError('unexpected_number');}//找到剩下的$length=strspn($expr,expr_NUMBER_CLASS,$p);//将其转换为浮点,无提示删除双小数点$操作数[]=浮点值(substr($expr,$p,$length));$p+=$length$应为=“operator”;继续;}

因此,表达式中表示数字的部分是一系列数字和点;由于浮动的第二个点以及紧随其后的任何数字和点都将被忽略,并且不会给出错误消息。不允许使用组分隔符:逗号被视为无法识别的标点符号:

因此,一个数字只能由一个或多个数字组成,或者由零个或多个子数字、一个点和零个或更多个数字组成。(为了计算表达式,加号或减号被视为一元运算符,而不是数字的一部分。)

规范形式

代码 结果
{{#expr:123}} 123
{{#表达式:123.456}} 123.456
{{#expr:0.456}} 0.456
{{#expr:0}} 0
{{#expr:2.0E-5}} 2.0E-5版

接受,尽管在某些情况下或多或少有些奇怪

代码 结果
{{#expr:.456}} 0.456
{{表达式:123.}} 123
{{#expr:000123}} 123
{{#表达式:123.456.789}} 123.456
{{#expr:.}} 0
{{#expr:2e-5}} 2.0E-5版
{{#expr:2E-5}} 2.0E-5版
{{#expr:E}} 2.718281828459
{{#expr:e}} 2.718281828459
{{#expr:E-5}} -2.281718171541
{{#expr:e-5}} -2.281718171541
{{#expr:1e-5}} 1.0E-5号机组

错误:

代码 结果
{{#expr:123456}} 表达式错误:无法识别标点符号“,”。
{{#expr:123456}} 表达式错误:意外数字。

由于说明符R(“原始”),{{物品编号:R}}179327等,即不带组分隔符的数字,可用于计算。

与ParserFunctions相反,“模板:MI“接受点数数字中的逗号并以特定于站点语言的方式解释它们(取决于Messagesxx.php中的$separatorTransformTable);在这个网站上

代码 结果
{{复数:1.000|a|b|c}}
{{复数:1000|a|b|c}} b条

(例如,德国和荷兰网站与英国网站的结果相反。)

然而,这可以代替#ifeq、#ifexpr或#switch,仅用于区分一些特定于站点语言的数字类别(对于英语:1和“不等于1”,对于法语<=1和>1,等等)。此外,由于它是为了区分单数和复数的语言而设计的,因此在某些语言中,数字的类别在数字上用处不大。

数字作为输出

非整数结果中有一个小数点。对于绝对值较小(小于1E-4)的数字和绝对值较大(大于或等于1E+12;然而,即使在MediaWiki中也不存在统一性,在非科学记数法中观察到较大的数字,而在科学记数方法中观察到较小的数字作为输出;同一数字的格式可能因预览和刷新页面而有所不同!)。因此,生成的数字包括(取决于服务器的操作系统)

代码 结果
{{#expr:.000000000000000000000000000000000000000040000000000000000000.000000000000000000000 123456789012345}} 1.2345678901234E-106
{{#表达式:.00000123456789012345}} 1.2345678901234E-6号
{{#表达式:.000123456789012345}} 1.2345678901235E-5号
{{#表达式:.00123456789012345}} 0.00012345678901234
{{#表达式:123456789012.345}} 123456789012.35
{{#表达式:1234567890123.45}} 1234567890123.4
{{#表达式:12345678901234.5}} 12345678901234
{{#表达式:123456789012345}} 1.2345678901234E+14
{{#表达式:12345678901234567890112345678801234566890123446789012355678901234567880112345669901234565656}} 1.2345678901235E+105
{{#expr:1.234e4}} 12340
{{#expr:1.234e-4}} 0.0001234

对于负数,只需在前面加一个减号

{{#表达式:-123456789012345}}给出-1.2345678901234E+14

YYYYMMDDhhmmss年/月/日时间戳可能会遇到相同的问题:

{{CURRENTTIMESTAMP}}当前时间给出20240416163226,
{{#expr:|CURRENTTIMESTAMP}}给予。

没有秒的时间戳是12位数,刚好够短:

{{#expr:{{CURRENTTIMESTAMP}}/100}}给出202404161632.26

为了避免这些问题并提高准确性,除非结果由#快递:不要使用精确的非科学表示法,例如不太大的整数#快递:在要计算的表达式中#快递:#ifexpr:通常,在进一步的计算中可能需要计算模板的结果,因此此类模板的至少一个版本需要以适合的形式给出结果,例如。{{}}{{根评估}}; 为了方便起见,为了获得最终结果,只需调用另一个版本并应用#快递:结果,例如。{{根细叶的}}.

表示中间结果的两种方法是

1.使用#快递:仅用于分支。

例如,{{功率}}以表达式的形式产生数字的幂

{{功率|31.18|12}}给予模板:Powe

然而,表达式可能会很长,因为{{}}看见帮助:计算/示例1.尽管长表达式如果允许,则会产生较大的扩展后包含大小和模板参数大小,对此存在限制。

应用#快递:直接在链接表达式上给出表达式错误:无法识别标点符号“[”。,但它也可以用于进一步的计算,与刚才提到的值不同。

2.把10的幂分出数,写得很清楚。

例子

{{rooteval|.0000000001}}给予模板:Rooteval

中间结果也以这种形式出现,阻止了上述表达的增长。再一次,#快递:可以直接应用,如中所述{{根细叶的}},给予

模板:Fineval,但结果也可用于进一步的计算。

比较

{{root|.0000000001}}
2  .0000000000001

这使用了相同的方法,但中间应用了#快递:,由于科学记数法的中间结果而导致错误。

如果舍入负数的结果为零,则结果为“-0”。为了避免这种情况,一个表达式x个可以替换为0+(x个)

{{#expr:(-0.2圆0)}}给出-0
{{#expr:1*(-0.2圆0)}}给出-0
{{#expr:0+(-0.2圆0)}}给出0

数字输出适用于许多其他计算程序,也适用于科学记数法。从这个意义上说,像6E23这样的输出比6更方便模板:E.

数字精度

精度和格式的操作系统不同维基百科服务器。

结果的精度#快递:小于表达式计算中内部使用的。

代码 结果 注释
数字精度OEIS维基
{{#表达式:1234567891.1234567891-1234567991}} 0.12345671653748 (内部使用1+52=53位有效位;53×log10(2) =15.954589770191或16十进制数字有效位)
{{#表达式:1234567891.1234567891}} 1234567891.1235 (结果四舍五入到最大值14十进制数字有效位)
{{#expr:(2/3)*1000000-666666}} 0.66666666662786 (内部使用1+52=53位有效位;53×log10(2) =15.954589770191或16十进制数字有效位)
{{表达式:(2/3)}} 0.66666666666667 (结果四舍五入到最大值14十进制数字有效位)

机器ε(最小x个这样1+x个≠1)OEIS Wiki为2 -52≅2.2204460492503E-16(双精度机床epsilon)。

{{TRUE|{{#expr:(1+2^(-53))=1}}}=TRUE
{{true|{{#expr:(1+2^(-52))=1}}}=FALSE

这是正常的行为双精度(64位)IEEE浮点标准[1](1个符号位,1+52个有效位,11个指数位)。

大于1的最小表达式结果受舍入到结果最大14位小数有效位的影响

1 + 2-44≅1+5.6843418860808E-14:{{#expr:1+2^(-44)}}= 1.0000000000001 (结果四舍五入到最大值14十进制数字有效位)
1 + 2 -45≅1+2.8421709430404E-14:{{#expr:1+2^(-45)}}= 1 (结果四舍五入到最大值14十进制数字有效位)

IEEE浮点标准(双精度)

钻头模式32位机器中的两个单词表示实数(实际上是有理数)

(-1)x 2个电子1023x(1.f)2

哪里,、和.

IEEE浮点标准(双精度)[1]
符号位 有偏指数 归一化有效位的分数
1位 11位 52位
e(电子) (f)

根据表达式进行分支

功能#ifexpr(ifexpr)根据包含数字和布尔值(不是字符串)的布尔表达式的值,生成两个指定结果之一。示例:

{{#ifexpr:{{CURRENTDOW}}=0或{{CURRENTDOW}{=6|weekEND|weekDAY}}产量工作日因为今天是星期二左右{{CURRENTDOW}}当前给出了2。
{{#ifexpr:2^10=1024|1|0}}产量1

请注意,舍入错误可能会影响结果

{{#expr:sin-pi}} 1.2246467991474E-16号
{{#ifexpr:sin-pi=0|1|0}} 0
{{#ifexpr:abs-sin-pi<1e-15|1|0} 1

类似地

{{#expr:sin-pi=0}} 0
{{#expr:abs-sin-pi<1e-15}} 1

比较

功能#如果条件:比较数字对于平等(如果两者代表相同的数字或两者是相等的字符串,则为相等)。

功能#开关:将一个字符串与多个其他字符串进行比较,并相应地生成多个指定结果中的一个。


代码 结果
{{#开关:FR|UK|London|FR|Paris|NL|Amsterdam} 阿姆斯特丹
{{#开关:UK|UK|3=GB=伦敦|4=FR=巴黎}} GB=伦敦
{{#开关:ZZ|2=UK=伦敦|3=FR=巴黎|4=无匹配}}
{{#ifeq:3|3.0|1|0}} 1
{{#ifeq:3|03|1|0}} 1

请注意#如果条件:不像#快递:接受输入的指数表示法

代码 结果
{{#ifeq:0.00003456|3.456E-05|1|0} 1
{{#ifeq:1234567890123 | 123456789010 | 1 | 0}} 0
{{#ifeq:1234567890123|1.23456789012E+12|1|0}} 0
{{#ifeq:1234567890120|1.234567890120E+12|1|0}} 1
{{#ifeq:1.234567890120E12|1.23456889012E+12|1|0}} 1

数值比较不依赖于输出格式,比较

代码 结果
{{#expr:1234567890123}} 1234567890123
{{#表达式:1234567890120}} 1234567890120

#如果eq:允许比较包含等号的字符串

#开关: 结果 #如果eq: 结果
{{#开关:-1.0|2=-1=正常|3=失败|s=</td><td>}} {{ifeq:-1.0|-1|好|fail|s=</td><td>}} 可以
{{#开关:a=b|2=a=b=正常|3=失败|s=</td><td>}} {{ifeq:a=b|2=a=b3=oky|4=fail|s=</td><td>}} 4=失败
{{#开关:a=c|2=a=b=失败|3=正常|s=</td><td>}} {{ifeq:a=c|2=a=b|3=失败|4=正常|s=</td><td>}} 4=正常

表达式的长度

要查找绝对值数值表达式不使用单独模板的x至少使表达式的长度加倍

x个*(1-2*(x个<0))
x*{#ifexpr:x>0|1|-1}}

(第一种方法不仅更短,而且还有一个优点,即替换时需要少一个“subst:”或{{subst|}}}。)

不要使用

{{#ifexpr:x>0|x|-x}}

对于长表达式,因为它将长度增加了三倍。

同样,不要使用mod进行舍入或相反的操作,因为它会使表达式的长度加倍。

如果表达式的结果小于10,则为其提供前导零将使其长度加倍

{{#ifexpr:x<10|0}}x

表达式的这种“指数”增长和大量重复是由于缺少变量(在计算机编程意义上);但是,请参见变量扩展.

模板(子例程)提供了变量所提供的一些功能:模板名称与变量名称类似,而其内容与变量的值类似。或者,可以为模板参数指定一个值,该值可用于模板中同一参数的多次出现。因此,例如带有长表达式x的x*(1-2*(x<0))可以通过两种方式进行评估,以避免该表达式的重复

将表达式x放在模板中(多次调用同一模板)
将x*(1-2*(x<0))放入参数为x的模板中(使用多次出现相同参数的模板)

对于预扩展包含大小最大值第一种方法没有帮助,但第二种方法有帮助。

如果长表达式的可能结果数很小,则开关允许进行任意转换,包括绝对值和前导零等,而无需重复表达式。

错误消息

所有已知的示例#快递:#ifexpr:错误消息。错误文本在标签中</strong>。请注意,对于旧的预处理器,“class=error”中的“=”会干扰未命名参数的编号,如果其中一个参数产生错误消息:{{tlx|{{#expr:1/0}}}}给予{{[[模板:被零除。|被零除。]]}}.


表达式 错误消息
{{}} {{}}
{{ #快递:{{ x | 102 | 1000*}} 18 }}给出1.8E+307
{{ #快递:{{ x | 102 | 1000*}} 179 }}给出1.79E+308
{{ #快递:{{ x | 102 | 1000*}} 180 }}给出了INF(“INF”,但根据服务器的操作系统,也可能是“1.#INF”)
{{ #快递:{{ x | 33 |(1+(}} 1 {{ x | 33 |))}}}}给出表达式错误:括号未闭合。
{{ #快递:{{ x | 34 |(1+(}} 1 {{ x | 34 |))}}}}给出表达式错误:堆栈已用尽。
{{#表达式:3.4.5.6}}3.4  (没有特征,只有一个奇怪的地方)

注:{{x个}}复制一个给定的字符串,这里是表达式的一部分,用于指定的次数(最多120次),其他项目上显示的这个帮助页面实际计算它的替代输出,例如102个因子“1000”乘以“180”,以得到INF(信息)(无穷大)。

Wikitext没有来自解析器函数的错误消息,但通常是在使用或尝试使用它们时出错:

{{{#expr:2*3}}  {{{#expr:2*3}} (三个大括号,整体被解释为参数名为“#expr:2*3”的参数标记)
{{#expr:2*3}}}} 6} (一个右大括号太多;三个大括号中的最后一个被解释为纯文本,以便其他大括号正常工作)
{{{#expr:2*3}} {6 (一个左大括号太多;三个大括号中的第一个被解释为纯文本,以便其他大括号正常工作)
{{#expr:2*3} {{#expr:2*3} (大括号太少,整个解释为纯文本)

可以有意生成粗略但信息丰富的“未识别单词”错误消息。仅显示第一个识别的错误:

{{#表达式:2*{{#ifexpr:3*4>10|工具大小|3*4}}}给出
表达式错误:无法识别单词“toolarge”。,
{{#表达式:2*{{#ifexpr:3*4>10|太大|3*4}}}}给出
表达式错误:无法识别单词“too”。.

另请参阅#i错误:.

减号

仅ASCII模板:Mlw(模板:Mlw)和模板:Mlws作为负号工作;不允许使用破折号。然而,输出总是以连字符-分钟的形式

代码 结果
连字符-分钟 {{#表达式:-12}} -12
Unicode连字符(U+2010,‐) {{#表达:‐12}} 表达式错误:无法识别标点符号“&”。
−由&minus;生产; {{#expr:−12}} -12
&负; {{#expr:&minus;12}} -12
-制作人:; {{#表达式:-12}} 表达式错误:无法识别的标点符号“".
&mdash; {{#expr:&mdash;12}} 表达式错误:无法识别标点符号“&”。
–由&ndash;制作; {{#expr:–12}} 表达式错误:无法识别的标点符号“".
&ndash; {{#expr:&ndash;12}} 表达式错误:无法识别标点符号“&”。

许多其他计算程序也需要连字符。因此,为了能够将呈现的数字和表达式复制到编辑框中,或通过复制操作将其输入到其他计算程序中,显示的减号也需要是连字符。

显示数字和数字表达式

指导方针,如WP:风格手册(日期和数字)#数字将数字显示作为最终产品。但是,还可以考虑将呈现的输出应用于#expr或#ifexpr,或者在不转换为其他计算程序的情况下输入输出。这将需要以下内容

  • 使用数字,而不是单词
  • 如上所述,使用连字符作为减号
  • 使用*、<=和>=,而不是x、≤或≥
  • 不要使用数千个分隔符(但是,有些程序允许使用)
  • 使用6E23或6E23等输出,而不是6模板:E

示例

代码 结果
{{#expr:三}} 表达式错误:无法识别单词“three”。
{{#expr:2<3}} 1
{{表达:2≤3}} 表达式错误:无法识别的标点符号“".
{{#expr:2<=3}} 1
{{#expr:2>3}} 0
{{表达:2≥3}} 表达式错误:无法识别的标点符号“".
{{#expr:2>=3}}} 0
{{#expr:2*3}} 6
{{#expr:2×3}} 表达式错误:无法识别的标点符号“".
{{#expr:2300}} 表达式错误:无法识别标点符号“,”。
{{#expr:6E23}} 东经6.0度+23度

如果数字是MediaWiki计算的结果,并且由于应用格式功能(例如#形式或格式化模板,可以复制wikitext并在格式化之前应用额外的计算。然而,当使用模板并将其复制到另一个wiki时,也必须复制或替换这些模板。

另请参阅

笔记

外部链接