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 (記載なし)
Copyright © 2013 Power Future Co., Ltd.