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