会計では,単位調整のため1000で割ることが何度もあります.
関数を作ったのですが、非常に苦労したのと非常に有用なのでUPしてみました。
以前にも、単純な関数を作ったことはあります。
ASTERIAで日付同士の差引きを求めるには?
会計ではDecimal型を使うことが基本です.
Decimal型のデメリット
計算速度が遅い
Decimal型のメリット(Integer型の欠点の裏返し)
計算が正確(IntegerならBanker Roundとかありえる)
扱える範囲が大きい(Integer型は21億ぐらいで限界です。好調な中小企業でも、売上高21億ぐらいはあるのでしょう)
特に扱う範囲が大きい会計系や勘定系では,Integer型を使わないのが通例です.
単純な1000で割る関数を作ってみた.
てんとう虫絵柄のシミュレーションを使うと,ダミーデータをわざわざ作らなくて済むので便利です.
15000 ÷ 1000 = 1.50000000
0 ÷ 1000 = 0.00000000
(空文字) ÷ 1000 = 0.00000000 ★
-15000 ÷ 1000 = -1.50000000
空文字を1000で割ると0になってしまう。
0とNULLを明確に分ける会計の世界では, 非常に不都合.
★の結果が
(空文字) ÷ 1000 = (空文字)
になるように作り直してみた。
新しく作った関数
関数内では, Branch系Switch系のコンポーネントが使えないらしい.
条件分岐は、Ifコンポーネントで,
その結果をChoiceコンポーネントで受けてあげるといいようだ.
ただこれらのヘルプを読んでも正直よくわからない...
Ifコンポーネントのヘルプ
Choiceコンポーネントのヘルプ
空文字かどうかの判定
RegexpMatchコンポーネントの
正規表現の値を ^$ とすればよい。
== の絵柄のEqualコンポーネントを
"" や(空文字) でしても,空文字に反応しなかったので注意が必要である.
個人的にはめちゃくちゃ良く使う関数になりました.