PCルータ特化OSまとめwiki

数値計算 (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 & 桁数)
    • 切り上げ ceil(x)
    • 切り捨て floor(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
代入の演算は代入した値を演算結果とするので上記の最初の式は7と表示されます. 式の値が重要でない計算(副作用が重要な計算)をする場合は=に続けて:を記述すると結果が表示されなくなります.
ソース
=: 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
表示
名前国語数学英語合計
鈴木一郎907080240
佐藤二郎5075100225
田中三郎6010030190
平均66.6781.6770218.33
最高得点90100100240
ナビゲーション
Linuxベース
IPFire
VyOS
Vyatta
入手方法
初期設定
取り合えず外へ
ポート開放
Vyattaマルチセッション
セッション
UPnP
USB起動
Coyote
IPnuts
入手方法
取り合えず外へ
USB起動
FreeBSDベース
pfsense
m0n0wall
オープンソースUTM
Endian
入手方法
マニュアル
検索
ツールボックス
新しいページの作成
全ページ
タグ
カウンター
•本日のアクセス数: 0
•昨日のアクセス数: 0
•累計のアクセス数: 447189
注目されているページ                  
               
最近編集されたページ
Wikiマニュアル
Side