木製ナットの部屋

文字列整数演算モジュール

目次

  1. 文字列数演算
  2. 文字列数比較
  3. 文字列整数表示加工
  4. バージョン情報

文字列数演算

文字列整数(例:"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関数のバグを修正