プロが教えるわが家の防犯対策術!

経験者の方にお尋ねします。
切り捨て計算をしたいので、fix関数を使っていたのですが、
先輩から、fix関数やint関数はよく計算間違いを起こすので、使用禁止と言われました。
代わりに、ストリング変換して、ピリオド前のものをLEFT関数で、切抜いてこいとのこと。
これって、一般的な事実なんでしょうか?
この先輩の言っていることは正しいのでしょうか?

A 回答 (4件)

> 先輩から、fix関数やint関数はよく計算間違いを起こすので、


> 使用禁止と言われました。
> 私のロジックでは、Ccurで変換していたのですが、ストリング
> 変換しろって、言われましたから・・・

そいつ、リストラできませんか?
つーか、邪魔くさいので是非辞めて欲しいのですが。
    • good
    • 0

再び登場しました。


ひょっとすると先輩のおっしゃっているのは、単精度浮動小数点とか倍精度浮動小数点型にすると桁落ちしたりという事を言っているのではないでしょうか。
それならFIXやINTの問題ではなく、通貨型のような固定小数点型にフィールドのデータ型を指定したら良いと思いますが。小数点4位までならそのほうが安心でしょう。
    • good
    • 0
この回答へのお礼

>単精度浮動小数点とか倍精度浮動小数点型にすると桁落ちしたりという事を言っているのではないでしょうか。

そこまで、わかっていないと思うのですが・・・

私のロジックでは、Ccurで変換していたのですが、ストリング変換しろって、言われましたから・・・

fix関数が具体的に何をやっているのか、わからないものなんでしょうか?

お礼日時:2003/05/12 22:13

マイナスの場合の切り捨て方に問題があります。


INTの場合1.5の場合1を返しますが、-1.5の場合-2を返します。例えば納品書の消費税の計算なんかでINTを使用すると、返品伝票などでマイナス値を使用する場合など、問題が発生すると思います。
FIX関数だと1.5の場合1を返しますが、-1.5の場合も-1を返します。
    • good
    • 0

一般的ではなく、個人の経験に基づくものですね。


それに疑問をもつ事は良いことだと思います。
自分で一度いろいろ試してはいかがですか?
先輩がいってることの理解のたしにできるかもしれません、参考のURLを載せておきます。

http://www.twin.ne.jp/~dhamaoka/access/tips14.html
    • good
    • 0
この回答へのお礼

ありがとうございます。
小数部分が2進数で表現できないときに(無限)、
どこかで丸められちゃうって、ことでしょうか?

関数をあまり使いたくないのですが、
文字列関数や属性変換って、処理負荷がかかるような気がして・・・(<-汎用機あがりなもので・・・)

いろいろ試してみたいと思います。

お礼日時:2003/05/12 22:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


このQ&Aを見た人がよく見るQ&A