木製ナットの部屋
文字列整数演算モジュール
目次
文字列数演算
文字列整数(例:"1234567890")を演算する関数郡です。
基本的にstr_arithmetic関数に機能が集約されていますが、速度が遅い場合は個別の関数を利用することも可能です。
str_arithmetic関数
val=str_arithmetic(p1,p2,p3)
- val=戻り値
- p1=計算モード
- p2=文字列整数1
- p3=文字列整数2
p1 | 説明 |
---|---|
0(*) | 加法(足し算) |
1 | 減法(引き算) |
2 | 乗法(掛け算) |
3 | 除法(割り算) |
4 | インクリメント |
5 | デクリメント |
6 | モジュロ演算(割り算の余り) |
7 | モジュロ演算2(直前の割り算の余り) |
(*)は初期値です。
文字列整数を演算し、返します。
p2・p3ともに"12345"や"-12345"のように半角数字と半角ハイフンを用いて指定してください。それ以外の文字が含まれる場合、"0"として処理されます。
p1は計算モードになっています。各計算モードは以下の通りです。
モード0 | : |
p2とp3で加法(足し算)を行います。 p2またはp3に"0"が指定された場合、計算を行わずにもう一方の文字列整数を直接返します。 p2またはp3に"1"が指定された場合、加法ではなくインクリメントが実行されます。 |
モード1 | : |
p2とp3で減法(引き算)を行います。 p2またはp3に"0"が指定された場合、計算を行わずにもう一方の文字列整数を直接返します。 p2またはp3に"1"が指定された場合、減法ではなくデクリメントが実行されます。 |
モード2 | : |
p2とp3で乗法(掛け算)を行います。 p2またはp3に"0"が指定された場合、"0"を返します。 p2またはp3に"1"が指定された場合、計算を行わずにもう一方の文字列整数を直接返します。 |
モード3 | : |
p2とp3で除法(割り算)を行います。 p2に"0"が指定された場合、"0"を返します。 p3に"1"が指定された場合、計算を行わずにp2を直接返します。 p3に"0"が指定された場合、本来ならゼロ除算になりますが、代わりに"0"を返します。 |
モード4 | : |
p2にインクリメント(元の数に+1する計算)を行います。 この時p3は無視されます。 |
モード5 | : |
p2にデクリメント(元の数に-1する計算)を行います。 この時p3は無視されます。 |
モード6 | : |
p2とp3でモジュロ演算(割り算の余りを求める計算)を行います。 p2に"0"が指定された場合、"0"を返します。 p3に"1"が指定された場合、"0"を返します。 p3に"0"が指定された場合、本来ならゼロ除算になりますが、代わりに"0"を返します。 |
モード7 | : |
直前の除法の余りを返します。p2とp3は無視されます。 除法を実行する前に呼び出した場合、"0"を返します。 直前の除法でゼロ除算が実行されていた場合、"0"を返します。 |
str_add関数
val=str_add(p1,p2)
- val=戻り値
- p1=文字列整数1
- p2=文字列整数2
2つの文字列自然数で加法(足し算)を行います。これはstr_arithmetic関数のモード0を直接呼び出している状態です。
p1・p2はstr_arithmetic関数のp2・p3と同様です。
入力文字列整数の正規化・負数処理等の簡略化が行われているためstr_arithmetic関数より高速ですが、例外処理の観点から基本はstr_arithmetic関数を使用する事をおすすめします。
str_sub関数
val=str_sub(p1,p2)
- val=戻り値
- p1=文字列整数1
- p2=文字列整数2
2つの文字列自然数で減法(引き算)を行います。これはstr_arithmetic関数のモード1を直接呼び出している状態です。
p1・p2はstr_arithmetic関数のp2・p3と同様です。
ただし負数が扱えないため、必ずp1>p2の関係にしてください。比較はstr_compare関数及びstr_compare_us関数で行うことができます。
入力文字列整数の正規化・負数処理等の簡略化が行われているためstr_arithmetic関数より高速ですが、例外処理の観点から基本はstr_arithmetic関数を使用する事をおすすめします。
str_mul関数
val=str_mul(p1,p2)
- val=戻り値
- p1=文字列整数1
- p2=文字列整数2
2つの文字列自然数で乗法(掛け算)を行います。これはstr_arithmetic関数のモード2を直接呼び出している状態です。
p1・p2はstr_arithmetic関数のp2・p3と同様です。
内部の処理的に、p1>p2の関係にした方が高速で処理されます。比較はstr_compare関数及びstr_compare_us関数で行うことができます。
入力文字列整数の正規化・負数処理等の簡略化が行われているためstr_arithmetic関数より高速ですが、例外処理の観点から基本はstr_arithmetic関数を使用する事をおすすめします。
str_div関数
val=str_div(p1,p2)
- val=戻り値
- p1=文字列整数1
- p2=文字列整数2
2つの文字列自然数で乗法(掛け算)を行います。これはstr_arithmetic関数のモード3を直接呼び出している状態です。
p1・p2はstr_arithmetic関数のp2・p3と同様です。
p2に"0"が指定された場合、本来ならゼロ除算になりますが、代わりに"0"を返します。
入力文字列整数の正規化・負数処理等の簡略化が行われているためstr_arithmetic関数より高速ですが、例外処理の観点から基本はstr_arithmetic関数を使用する事をおすすめします。
str_inc関数
val=str_inc(p1)
- val=戻り値
- p1=文字列整数
文字列自然数でインクリメント(元の数に+1する計算)を行います。これはstr_arithmetic関数のモード4を直接呼び出している状態です。
p1はstr_arithmetic関数のp2と同様です。
入力文字列整数の正規化・負数処理等の簡略化が行われているためstr_arithmetic関数より高速ですが、例外処理の観点から基本はstr_arithmetic関数を使用する事をおすすめします。
str_dec関数
val=str_dec(p1)
- val=戻り値
- p1=文字列整数
文字列自然数でデクリメント(元の数に-1する計算)を行います。これはstr_arithmetic関数のモード5を直接呼び出している状態です。
p1はstr_arithmetic関数のp2と同様です。
入力文字列整数の正規化・負数処理等の簡略化が行われているためstr_arithmetic関数より高速ですが、例外処理の観点から基本はstr_arithmetic関数を使用する事をおすすめします。
str_mod関数
val=str_mod(p1,p2)
- val=戻り値
- p1=文字列整数1
- p2=文字列整数2
2つの文字列自然数でモジュロ演算(割り算の余りを求める計算)を行います。これはstr_arithmetic関数のモード6を直接呼び出している状態です。
p1・p2はstr_arithmetic関数のp2・p3と同様です。
p2に"0"が指定された場合、本来ならゼロ除算になりますが、代わりに"0"を返します。
入力文字列整数の正規化・負数処理等の簡略化が行われているためstr_arithmetic関数より高速ですが、例外処理の観点から基本はstr_arithmetic関数を使用する事をおすすめします。
str_mod2関数
val=str_mod2()
- val=戻り値
直前の除法の余りを返します。これはstr_arithmetic関数のモード7を直接呼び出している状態です。
除法を実行する前に呼び出した場合、"0"が返ります。
また、直前の除法のp2を"0"で指定した場合、"0"が返ります。
直前にstr_arithmetic関数で負数を含む除法を実行した場合、この関数を直接呼び出すと符号が正しく返りません。
入力文字列整数の正規化・負数処理等の簡略化が行われているためstr_arithmetic関数より高速ですが、例外処理の観点から基本はstr_arithmetic関数を使用する事をおすすめします。
文字列数比較
文字列整数(例:"1234567890")を比較する関数郡です。
基本的に負数を扱えるstr_compare関数を使用することをおすすめしますが、速度が遅い場合は自然数のみに限定されたstr_compare_us関数を利用することも可能です。
str_compare関数
val=str_compare(p1,p2)
- val=戻り値
- p1=文字列整数1
- p2=文字列整数2
2つの文字列整数を比較します。
戻り値は以下の通りです。
戻り値0 | : | p1 = p2 |
戻り値1 | : | p1 > p2 |
戻り値2 | : | p1 < p2 |
str_compare_us関数
val=str_compare_us(p1,p2)
- val=戻り値
- p1=文字列整数1
- p2=文字列整数2
2つの文字列自然数を比較します。
戻り値は以下の通りです。
戻り値0 | : | p1 = p2 |
戻り値1 | : | p1 > p2 |
戻り値2 | : | p1 < p2 |
入力文字列整数の正規化・負数処理等の簡略化が行われているためstr_compare関数より高速ですが、例外処理の観点から基本はstr_compare関数を使用する事をおすすめします。
文字列整数表示加工
文字列整数(例:"1234567890")を表示用に加工する関数郡です。
この関数郡で加工された文字列整数は、他の関数で計算や比較に使用することはできません。
numeral_system_comma関数
val=numeral_system_comma(p1)
- val=戻り値
- p1=文字列整数
文字列整数を3桁ずつに区切って返します。
例:
"123456789" | → | "123,456,789" |
"-123456789" | → | "-123,456,789" |
numeral_system_jp関数
val=numeral_system_jp(p1)
- val=戻り値
- p1=文字列整数
文字列整数を4桁ずつ日本語命数を挿入して返します。
無量大数以降は特に加工は行われません。
例:
"1234567890" | → | "12億3456万7890" |
"-12345678901234567890" | → | "-1234京5678兆9012億3456万7890" |
バージョン情報
以下はバージョン情報になります。
特別な理由が無い限り、最新バージョンのモジュールを使用することを推奨します。
2024/03/23 | ver 1.0.3a | ダウンロード | サンプルの追加・修正 |
2024/03/17 | ver 1.0.3 | ダウンロード |
配布用に最適化 numeral_system_comma関数のバグを修正 |