PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
9410 99/12/17 13:11:37 PB6.5: Double関数の不具合?PB5.0.04->PB6.5 By 武蔵野飛龍

カテゴリ:PowerBuilderの不具合?
日付:1999年12月17日 13:11 発信者:武蔵野飛龍
題名:PB6.5: Double関数の不具合?PB5.0.04->PB6.5

皆様、お初にお目にかかります。

Double()関数が、PB5.0.04とPB6.5で動作が違いますので
ご報告致します。

▼PB5.0.04
Double dTemp
Int    iTemp
dTemp = Double( \"1,000\" )
iTemp = Integer( \"1,000\" )
dTempは、【1000】となります
iTempは、【1000】となります

▼PB6.5
Double dTemp
dTemp = Double( \"1,000\" )
iTemp = Integer( \"1,000\" )
dTempは、【1】となります
iTempは、【1000】となります

お分かりの通り、カンマ文字が数字ではないという判断で処理されていることが
わかります。しかし、以下の違いを認識して下さい

#Double(\"10a000\")⇒【0】←数字以外が含まれる文字列の場合は、”0”となる仕様
#Double(\"10,000\")⇒【10】←仕様外の動作をする!!

では、IsNumber()関数を使用するとどの様になるのでしょうか?以下の通りです

#IsNumber(\"10a000\")⇒【FALSE】←仕様通り
#IsNumber(\"10,000\")⇒【TRUE】←仕様と違う???

まとめ...
以上のことから、”1,000”という文字列をDouble関数で変換した場合、PB5.0.04
と同じ動作であるべき事はIsNumber()関数が”TRUE”を返すところから明確です。
ということは、Double(\"1,000\")が”1”を返すのはバグと認識せざるを得ません。

尚、この問題で”0”が帰るのではなく、”,”(カンマ)より前までで数値かされて
しまうところに注意して下さい。

以上、報告終わり!

[1999.12.17 13:00 Start]
この問題は、PB6.5.1パッチモジュールにて対応されているそうです
尚、PB6.5.1は、2000年1月末以降にリリースされるとか・・・。
[1999.12.17 13:00 End]

付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows NT 4.0
DBMS (記載なし)
Browser InternetExplorer4.X

Server SoftWare

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

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