- ベストアンサー
ACCESSのint関数、fix関数について。
経験者の方にお尋ねします。 切り捨て計算をしたいので、fix関数を使っていたのですが、 先輩から、fix関数やint関数はよく計算間違いを起こすので、使用禁止と言われました。 代わりに、ストリング変換して、ピリオド前のものをLEFT関数で、切抜いてこいとのこと。 これって、一般的な事実なんでしょうか? この先輩の言っていることは正しいのでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
再び登場しました。 ひょっとすると先輩のおっしゃっているのは、単精度浮動小数点とか倍精度浮動小数点型にすると桁落ちしたりという事を言っているのではないでしょうか。 それならFIXやINTの問題ではなく、通貨型のような固定小数点型にフィールドのデータ型を指定したら良いと思いますが。小数点4位までならそのほうが安心でしょう。
その他の回答 (3)
- dempa_hakeen
- ベストアンサー率4% (2/44)
> 先輩から、fix関数やint関数はよく計算間違いを起こすので、 > 使用禁止と言われました。 > 私のロジックでは、Ccurで変換していたのですが、ストリング > 変換しろって、言われましたから・・・ そいつ、リストラできませんか? つーか、邪魔くさいので是非辞めて欲しいのですが。
- souta_n
- ベストアンサー率33% (79/234)
マイナスの場合の切り捨て方に問題があります。 INTの場合1.5の場合1を返しますが、-1.5の場合-2を返します。例えば納品書の消費税の計算なんかでINTを使用すると、返品伝票などでマイナス値を使用する場合など、問題が発生すると思います。 FIX関数だと1.5の場合1を返しますが、-1.5の場合も-1を返します。
- rara_sun
- ベストアンサー率50% (271/539)
一般的ではなく、個人の経験に基づくものですね。 それに疑問をもつ事は良いことだと思います。 自分で一度いろいろ試してはいかがですか? 先輩がいってることの理解のたしにできるかもしれません、参考のURLを載せておきます。 http://www.twin.ne.jp/~dhamaoka/access/tips14.html
お礼
ありがとうございます。 小数部分が2進数で表現できないときに(無限)、 どこかで丸められちゃうって、ことでしょうか? 関数をあまり使いたくないのですが、 文字列関数や属性変換って、処理負荷がかかるような気がして・・・(<-汎用機あがりなもので・・・) いろいろ試してみたいと思います。
お礼
>単精度浮動小数点とか倍精度浮動小数点型にすると桁落ちしたりという事を言っているのではないでしょうか。 そこまで、わかっていないと思うのですが・・・ 私のロジックでは、Ccurで変換していたのですが、ストリング変換しろって、言われましたから・・・ fix関数が具体的に何をやっているのか、わからないものなんでしょうか?