テーブルの構造でついてです
フィールド名は、利益
フィールドサイズ ⇒ 十進型
書式 ⇒ 標準
精度 ⇒ 18
小数点以下保持桁数 ⇒ 1
小数点以下表示桁数 ⇒ 1
Excelのデータで、5.6を、値貼りすると、5.6が、5.5になります。
小数点の計算をするために、
フィールドサイズ ⇒ 十進型
書式 ⇒ 標準
精度 ⇒ 18
小数点以下保持桁数 ⇒ 1
小数点以下表示桁数 ⇒ 1
このような設定にしました。
手入力では、5.6と入力できます。
Excelの値を貼ると、なぜ、5.5にんるのでしょうか?
おしえてくださいませ
よろしくお願いいたします。
Excelワークシート上において、そのセルの表示形式がどのように設定されているか、
もし「数値」形式または「通貨」形式である場合、[小数点以下の桁数]プロパティが
いくつに設定されているのかを具体的に明記して下さい。
現時点では、「コピーされたセルの実際の値は 5.6 ピッタリではなく、
5.5 以上 5.6 未満の数値である」可能性が最も高いと思います。
sk様
悪戦苦闘しましたが、単精度浮動小数点型にしたら、改善しました。
いつも、回答ありがとうございます。
対症療法的な解決で、本質的な解決策ではないと思います。
原因はskさんも推定している「実際の値は 5.6 ピッタリ」ではないのだと思います。
小数点以下桁数を固定にした場合、単精度浮動小数点型は丸められて表示されるので、見た目上は5.6になっていても実際の値はそうでない可能性があります。
これでは集計した場合など演算誤差の原因になります。
そもそも浮動小数点型は演算誤差がありますので、誤差が発生しては困る金額計算には使用すべきではありません。
フィールド名が「利益」ということなので金額値だと思いますので「通貨型」にするのが適切です。
そのうえで小数点2桁以降の端数処理をどうするのかの仕様(切り捨て、切り上げ、四捨五入、金融機関型丸めなど)を決めて演算時に丸め処理をするような設計にすべきです。
回答ありがとうございました。
通貨型に変更します