PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
10001 00/01/24 17:18:56 RE(4):PB5.0.02: decimalで定義した変数へ格納した数値で誤差が発生します。 By shino0929
9994 00/01/24 12:45:11 RE(3):PB5.0.02: decimalで定義した変数へ格納した数値で誤差が発生します。 By M.M
9986 00/01/24 09:21:39 RE(2):PB5.0.02: decimalで定義した変数へ格納した数値で誤差が発生します。 By shino0929
9983 00/01/22 18:26:47 RE(1):PB5.0.02: decimalで定義した変数へ格納した数値で誤差が発生します。 By M.M
9970 00/01/21 16:23:55 PB5.0.02: decimalで定義した変数へ格納した数値で誤差が発生します。 By shino0929

カテゴリ:PowerBuilderの不具合?
日付:2000年01月24日 12:45 発信者:M.M
題名:RE(3):PB5.0.02: decimalで定義した変数へ格納した数値で誤差が発生します。

shino0929さん、こんにちは。

>>データウィンドウでの\"浮動小数点演算の数値誤差\"の件ですね。
>>No.003873のコメントツリーに、原因についての詳細な情報があります。
>>
>>それで対策なんですが、状況によって対策方法が違いますので、shinoさんが
>>どういう処理をしているかがわからないと何とも言えません。
>>
>>具体的にどういう問題が出ているか教えてもらえますか。
>>
> 回答ありがとうございます。
> 具体的に言うと、DWからGetItemしたdecimal変数をWhere句に指定して別のテーブルをSELECTし
> ています。ここでdecimal変数に誤差が発生しているために、SELECTがエラーになってしまいます。
> 対策さんですが、使用しているdecimal変数をdecimal{0}のように小数点以下を切り捨てるように
> しようとしていますが、これで大丈夫なのでしょうか?

dw内での全ての数値が浮動小数点として扱っていることが原因ですので、
Oracleのto_char関数で数値として取得するカラムを、強制的に文字型に
変換することで数値誤差の発生を回避できると思います。

そして、GetItemString関数で値を取得した後、Dec関数でDecimal型の数値に置き換えれば
OKだと思います。

また、使用している数値項目の小数点以下を切り捨てることでも対処可能だと思いますので、
試してみてください。

付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows98
DBMS (記載なし)
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS Oracle 7.3
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.