電卓
三角関数、対数、指数、階乗などの科学計算機能に対応
電卓とは?
電卓は、基本的な四則演算から高度な科学関数の計算まで対応する強力なオンライン数学計算ツールです。三角関数(sin、cos、tanとその逆関数)、対数関数(log、ln)、指数関数、累乗演算、階乗、絶対値などの豊富な数学演算機能を提供します。
この電卓は度(DEG)とラジアン(RAD)の2つのモード切り替えをサポートし、円周率πと自然対数の底eを内蔵し、メモリ機能(M+、M-、MR、MC)を提供します。すべての計算はブラウザ上でローカルに実行され、データのプライバシーを保護します。
使い方
使い方
- 計算機パネルの数字と演算子ボタンをクリックして数式を入力します
- 科学関数ボタン(sin、cos、logなど)をクリックして関数を挿入し、括弧で演算の優先順位を制御します
- 等号ボタンまたはEnterキーを押して計算結果が得られます。式と結果は上部に表示されます
- DEG/RADボタンで度/ラジアンモードを切り替え、M+/M-/MR/MCでメモリを管理します
計算のヒント
- 三角関数を使う前にDEG/RADモードを確認してください。同じ数値でも度モードとラジアンモードでは結果が大きく異なります。
- 複雑な式では括弧を使って演算子の優先順位を明示し、暗算の順序判断に頼らないようにしましょう。
利用シーン
仕組み
本電卓は入力に対してshunting-yardアルゴリズムによるパースを実行し、中置記法を後置キューに変換します。演算子の優先順位と累乗演算子の右結合性を正しく処理します。括弧はグループ化を強制し、単項マイナスは被演算子に畳み込まれ、piやeなどの定数の隣にある暗黙の乗算は後置パスの前に正規化され、曖昧なトークンを回避します。 数値評価はすべてIEEE 754倍精度浮動小数点で実行され、有効桁数は約15〜17桁、値の範囲は約±1.7976931348623157e308です。古典的な浮動小数点の罠がそのまま適用されます。0.1 + 0.2は0.30000000000000004と評価されます。これは両オペランドが有限な2進表現を持たないためです。また、中間結果は近い値の減算の長い連鎖で精度が失われる場合があります。 三角関数、対数関数、指数関数、平方根関数はJavaScriptのMathライブラリに委譲されます。DEG/RADスイッチはMath.sin、Math.cos、Math.tanを呼び出す前に角度にpi/180を乗算または除算し、逆関数は結果に対して逆変換を行います。階乗は反復積を使用するため、170!は倍精度の天井付近の約7.257e+306であり、171!はInfinityにオーバーフローします。
- Shunting-yardパーサー: 中置記法を後置記法に変換。優先順位を正しく処理(^は右結合、単項マイナスは被演算子に畳み込み)
- IEEE 754倍精度: 有効桁数約15〜17桁、最大値約1.79e+308。古典的な例: 0.1 + 0.2 = 0.30000000000000004
- DEG/RAD変換: Math.sin/cos/tanの呼び出し前に角度をpi/180でスケーリング。逆関数は結果に対してスケーリングを逆転
- 階乗のオーバーフロー境界: 170!は約7.257e+306、171!はJavaScriptの数値型でInfinityを返す
- 内蔵定数: Math.PI(3.141592653589793)とMath.E(2.718281828459045)はトークンとして挿入され、毎回再パースされない
- 超越関数: Math.logは自然対数(ln)、Math.log10は常用対数、Math.exp(x)はe^xを計算、Math.powはx^yを処理
- メモリレジスタ: M+ / M-は単一の数値変数に累積。MRは入力にリテラルとしてプッシュバックし、MCはゼロにリセット
使用例
三角関数(度数法 vs 弧度法)
モード: DEG
sin(30) = 0.5
cos(60) = 0.5
tan(45) = 1
モード: RAD
sin(pi/4) = 0.70710678
cos(pi) = -1
tan(pi/3) = 1.73205081対数・指数・e と pi
log(1000) = 3 (常用対数 底10)
ln(e) = 1 (自然対数)
exp(1) = 2.71828183
e^2 = 7.389056
2^10 = 1024
pi * 2 = 6.28318531階乗と組み合わせ
5! = 120
10! = 3628800
170! = 7.257e+306 (IEEE-754 オーバーフロー直前の最大値)
171! = Infinity
C(52,5) = 52!/(5!*47!) = 2598960 (ポーカーの手の組み合わせ数)メモリーキー: 累計計算
手順1: 125.50 を入力し M+ を押す -> メモリ = 125.50
手順2: 89.99 を入力し M+ を押す -> メモリ = 215.49
手順3: 12.00 を入力し M- を押す -> メモリ = 203.49
手順4: MR を押す -> 表示 = 203.49
用途: 小計を打ち直さずにレシートの金額を集計よくある質問
どのような関数がサポートされていますか?
標準的な四則演算、括弧、平方根とべき根、累乗、対数(log は底 10、ln は自然対数)、指数関数、三角関数(sin/cos/tan とその逆関数)、双曲線関数、階乗、剰余、絶対値、定数 π と e。一部のバージョンでは統計補助関数(平均、標準偏差)も含まれます。
角度はラジアンと度のどちらですか?
モード切り替えがあり、デフォルトは度です。度モードでは sin(30°) = 0.5、ラジアンモードでは sin(30) ≈ −0.988 となります。現在のモードは画面に表示されているので、三角関数の計算前に必ず確認してください。
なぜ 0.1 + 0.2 がちょうど 0.3 にならないのですか?
JavaScript は IEEE 754 倍精度浮動小数点数を使用しています。0.1 と 0.2 は 2 進数で正確に表現できないため、0.1 + 0.2 = 0.30000000000000004 となります。電卓は表示時に丸めて隠していますが、超越関数の計算で極端な十進精度を得ることはできません。
長い式を評価するには?
式全体を入力してください。パーサーは演算子の優先順位と括弧を尊重します。2*3+4^2 ではなく 2*(3+4)^2 のように書いてください。関数に隣接する暗黙の乗算(例:2sin(30))はパーサーによっては動作しない場合があるため、* を明示的に挿入する方が常に安全です。
複素数や記号代数は扱えますか?
いいえ。これは数値計算用の関数電卓です。複素数、記号微分、方程式の解法には Wolfram Alpha、GeoGebra、または SymPy のような CAS をご利用ください。
計算はローカルで行われますか?
はい。式の解析と評価はすべてブラウザ内で行われます。アップロードはありません。履歴がある場合は localStorage に保存され、サイトデータを消去するとクリアされます。
科学関数の精度はどの程度ですか?
標準的な JavaScript の Math 関数は約 15〜17 桁の十進精度を提供します。エンジニアリング用途には十分ですが、高精度な記号数学には足りません。任意精度が必要な場合は decimal.js のようなライブラリや CAS を使ってください。