![見出し画像](https://assets.st-note.com/production/uploads/images/119339460/rectangle_large_type_2_700cdcf7e630ec7d213ccea40e5c09f3.png?width=1200)
3.8-3.7は0.1ではない?小数点との付き合い方【クラウド連結会計こだわり仕様シリーズ】
こんにちは!「マネーフォワード クラウド連結会計(以降“クラウド連結会計”)」のプロダクトマネージャーをしている、HORI です。
こだわり仕様シリーズ第7回
クラウド連結会計のこだわりシリーズの第7回です。第6回は通貨にフォーカスして解説しました。今回は通貨が外国の通貨だった場合に、避けて通れなくなる「小数点」について解説します。(今回はややシステム寄りです)
連結決算における小数点桁数の必要性
連結決算対象会社には海外の子会社が入ってくる可能性があり、通貨が異なる場合の「換算」に配慮する必要があるというという話を前回の「通貨」に関する解説記事で記載しました。
今回はその通貨違いのデータに「小数点以下の桁数」がある場合の留意点について解説します。
日本円の場合「銭」の単位を使わなくなって久しいため小数点表示が不要なのですが、ドルやユーロの場合は小数点以下2桁の数値(セント等)を取り込んで欲しい、というニーズが非常に多くなります。
なお、クラウド連結会計ではExcelからのダイレクトインポート機能を持っているため、「Excelの小数点桁数」に対するケアがかなり必要となります。
Excel書式設定の罠
Excelのデータの表示は、ユーザーが直感的にわかりやすいように、書式設定などを駆使して適当な桁数で四捨五入して表示していることが多いのは読者の方もだいたい認識されているか思います。
表示上だけの四捨五入がある結果、Excelの計算結果の数値をそのまま取り込んでしまうと、10/3=3.3333333… というようなデータを取り込んでしまうため、表示されている状態(3.33)をそのまま取り込んだつもりが、実際の数値が違ってしまっているリスクが高くなります。
浮動小数点
では、上記のような割り算の端数だけケアしておけばいいかというと、それだけでは配慮が足りなかったりします。実はExcelでは小数点以下の桁数を持つ数値の持ち方が特徴的になっていて、微妙な誤差が発生する可能性があります。
ExcelはIEEE 754という浮動小数点演算の規格に従うように設計されているため、実は小数点以下の数値が人間の感覚の理論値と微妙にズレることがあるのです。(この中身を詳細に解説する役割はエンジニア系の方々に譲ります)
理系でない読者(筆者も含めて)には、理論を説明しても困ると思いますので、実例の画面キャプチャを掲載しておきます。
![](https://assets.st-note.com/img/1697457633864-05MfjhllYt.png)
この浮動小数点誤差がいつ発生するか?は事前に潰しこむことが難しいため、クラウド連結会計では、「Excelの数値を取り込む度に会社毎に指定した桁数で四捨五入する」というひと手間を入れています。
表示されている数値と内部で持っている数値を確実に一致させておくことで、原因不明の貸借差額(理論値で貸借一致しているのに貸借差額が残る等)が発生してしまうことを回避するようにしているのです。
報告通貨の桁数と為替レートの桁数
ドルやユーロなどのように、日本円より数値の桁数が少なく、現地からの財務報告数値に小数点2桁を必要とする通貨がある反面、ベトナムドンやインドネシアルピアなどは、整数部の桁数が非常に大きいのが特徴です。
このような通貨の場合、為替レート側の桁数に小数点2桁までのみ登録できるデータの持ち方をしてしまいますと、円換算誤差が大きくなりやすいという問題が発生します。そのため、クラウド連結会計では
各会社の財務報告数値の小数点桁数:3桁まで登録可能
為替レートの小数点桁数:6桁まで登録可能
というデータの持ち方にしています。こうすることで、ドルやユーロのような桁数が少ない(小数点桁数が必要)通貨と、ベトナムドンやインドネシアルピアのような整数桁数が多い通貨の財務報告の両者をバランスよく扱えるようにしています。
世界の桁数表記
蛇足感はあるのですが、現時点ではプロダクトとして対応しなかった部分も書いておきます。
実は日本やアメリカでは違和感なく使える 1,000.00 というカンマ、ピリオドの使い方は、全世界共通ではありません。ドイツではカンマとピリオドを逆で使うことも多く、フランスでは桁区切りをスペースで表現することもあります。また、スイスでは桁区切りに ’(アポストロフィ)を使うこともあります。
こういった数値表記全てに対応していくのはさすがに時期尚早、かつ、米国を筆頭に普及している 1,000.00 というカンマ、ピリオドの使い方で通じる国が多いので、現時点ではクラウド連結会計のプロダクト内の数値表現は1,000.00 というカンマ、ピリオドの使い方に統一することにしました。
最後に
いかがでしたでしょうか?
私たちはこだわりを持ってプロダクトを作り、連結会計の世界を変えていくつもりで日々の開発に取り組んでいます。志を叶えるにはまだまだ遠い道のりですが、このこだわりに共感し、一緒に未来を作っていくメンバーを募集しています。共感された方、気になった方は、ぜひエントリーをお願いいたします。
この記事が気に入ったらサポートをしてみませんか?