時点の ToraToraWikiManual/ja/Wiki/Calc
概要
ToraToraWikiにはWiki記法中に式を書くことでその式の値を計算する数値計算機能があります. 数値計算機能を使うには以下のように行頭に=を書く方法と&calcを使う方法があります.
= 式
&calc{式}
行頭に=を書く方法は箇条書きとして扱われ,複数続けて書くことができます. &calcの方は文中で計算を行う際に使用します.
式
式の中の数値は1,000のように,で桁の区切りがされていてもかまいません. 式の中では以下の演算子, 関数, 定数 が使えます. 関数に複数の引数を渡す場合は式を&で区切ります.
- 演算子
- 四則演算 +, -, *, /
- 剰余算 %
- べき乗 ^
- 代入 =
- 関数
- 三角関数 sin(x), cos(x), tan(x)
- 対数 log(x), log(base & x)
- 四捨五入 round(x), round(x & 桁数)
- 最小 min(a & b & c & ..)
- 最大 max(a & b & c & ..)
- 合計 sum(a & b & c & ..)
- 平均 average(a & b & c & ..)
- 定数
- 円周率 pi
- 自然対数の底 e
例えば以下のように使用できます.
- ソース
= (1 + 2) * 3 ^ 2 / 4 &calc{ sin(pi/4) + cos(pi/4) + log(2 & 1024) }
- 表示
- 6.75
11.41
数式内の[と]で囲まれた部分は無視されます. これは以下のように単位や説明を記載するために使用できます.
- ソース
= 1,000[ml] * 20[本] / 1000[L換算]
- 表示
- 20
通常は式を書くとその式の計算結果に置き換わります. 式の最後に=を書くと結果を置き換えずに数式と結果の両方を表示します.
- ソース
= (1 + 2) * 3 ^ 2 / 4 = = 1,000[ml] * 20[本] / 1000[L換算] = [L]
- 表示
- (1 + 2) * 3 ^ 2 / 4 = 6.75
- 1,000[ml] * 20[本] / 1000[L換算] = 20 [L]
変数
- ソース
= foo = 2 + 5 = foo * 20 =
- 表示
- 7
- foo * 20 = 140
- ソース
=: foo = 10 = foo * 20 =
- 表示
- foo = 10
- foo * 20 = 200
パラメータ
以下のように書くことで数値計算の挙動をカスタマイズすることもできます.
=(パラメータ) 式 &calc(パラメータ){ 式 }
パラメータには以下の指定ができます.複数指定する場合はカンマで区切ります.
- round=桁数
- 指定された桁数で小数点以下の四捨五入をします.デフォルトは2です.
- comma
- 結果をコンマ区切りの数値で表示します. 式中にコンマ区切りの数値が使用されていた場合は自動で指定されます.
- !comma
- 結果をコンマ区切りの数値で表示しないようにします.
- replace
- 式を結果で置き換えます.デフォルトで指定されています.
- !replace
- 式を結果で置き換えずに式と結果を表示するようにします.
- result
- 結果を表示します.デフォルトで指定されています.
- !result
- 結果を表示しません.変数への代入等の副作用のみが必要な場合に指定します. 行頭に=:とした場合と同等の効果が得られます.
表計算
表のセル内で最初に=を書き,続いて式を書くと 表計算のように使用することができます. 表の中でも通常の演算子や関数が使えますが,さらに以下のような変数,関数が使用できます.
- A1, B2のようなセルの番号
- 大文字のみ有効,セルの番号はセルの上でマウスカーソルを止めておくと表示されます
- A1:C3のようなセル番号での範囲
- 大文字のみ有効
- up
- 現在のセルから見て上方向のセルすべて
- up(n & m)
- 上方向にn個のセルをとばしてm個のセル(mが省略された場合はmは無限扱い)
upと同様にdown,left,rightも同様に使用できます.
- ソース
|名前 |国語 |数学 |英語 |合計 |hc |鈴木一郎|90 |70 |80 |=sum(left(0&3))|lr |佐藤二郎|50 |75 |100 |=sum(left(0&3))| |田中三郎|60 |100 |30 |=sum(left(0&3))| |平均 |=average(up)|=average(up)|=average(up)|=average(up) |f |最高得点|=max(up(1)) |=max(up(1)) |=max(up(1)) |=max(up(1)) |f
- 表示
名前 国語 数学 英語 合計 鈴木一郎 90 70 80 240 佐藤二郎 50 75 100 225 田中三郎 60 100 30 190 平均 66.67 81.67 70 218.33 最高得点 90 100 100 240