「Mery 電卓 (bc コマンド使用版)」の版間の差分
編集の要約なし |
|||
| (2人の利用者による、間の4版が非表示) | |||
| 1行目: | 1行目: | ||
== 概要 == | == 概要 == | ||
「Mery 電卓 (bc コマンド使用版)」は、 [ | 「Mery 電卓 (bc コマンド使用版)」は、 [[Mery 電卓]] の派生版で、Meryエディタ上で数式を計算するためのマクロです。オリジナルの「Mery 電卓」よりも対応する数学関数が少ない代わりに起動が早いため、日々の利用の中で軽快に使用することができます。 | ||
Linux でお馴染みの bc コマンドを計算エンジンとしており、標準的な数式と一部の数学関数をサポートしています。カーソル位置の行または選択したテキストを数式として解釈し、結果を表示します。計算結果は自動的にクリップボードにコピーされ、カンマ区切りの数値として表示されます。 | Linux でお馴染みの bc コマンドを計算エンジンとしており、標準的な数式と一部の数学関数をサポートしています。カーソル位置の行または選択したテキストを数式として解釈し、結果を表示します。計算結果は自動的にクリップボードにコピーされ、カンマ区切りの数値として表示されます。 | ||
| 114行目: | 114行目: | ||
try { | try { | ||
var exp_replaced = replaceExpression(exp) | var exp_replaced = replaceExpression(exp) | ||
.replace(/([^;]*%[^;]*)/g, "scale=0; $1; scale= | .replace(/([^;]*%[^;]*)/g, "scale=0; $1; scale=15; "); // 剰余計算を整数にする | ||
const exec = shell.Exec(busyboxPath + " bc -l", "scale= | const exec = shell.Exec(busyboxPath + " bc -l", "scale=15; " + exp_replaced); | ||
if (exec.ExitCode !== 0) { | if (exec.ExitCode !== 0) { | ||
throw new Error("計算エラー: " + exec.StdErr); | throw new Error("計算エラー: " + exec.StdErr); | ||
| 122行目: | 122行目: | ||
var result_str = exec.StdOut | var result_str = exec.StdOut | ||
.trim() | .trim() | ||
.replace(/^\./gm, " | .replace(/^(-)?\./gm, "$10.") | ||
.replace(/(\.[0-9]*?)0+$/gm, "$1"); | .replace(/(\.[0-9]*?)0+$/gm, "$1") | ||
.replace(/\.$/gm, ""); | |||
} catch (e) { | } catch (e) { | ||
if (exp_replaced === undefined) { | if (exp_replaced === undefined) { | ||
| 273行目: | 274行目: | ||
== 更新履歴 == | == 更新履歴 == | ||
* 2025-11-29 計算結果が「-0.1」のような1未満の負の小数になる場合に「-.1」のような表示になってしまう不具合を修正。小数計算精度を scale=10 から scale=15 へ調整 | |||
* 2025-10-26 「5 - 3.0」のような「小数以下が『.0』になる計算」で「.」だけが出力に残ってしまう不具合を修正 | |||
* 2025-10-25 公開 | * 2025-10-25 公開 | ||
スポンサーリンク