過去ログ

                                Page     638
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼オーバーフロー  よしろう 04/5/27(木) 14:49
   ┗Re:オーバーフロー  クロ 04/5/27(木) 18:55
      ┗Re:オーバーフロー  よしろう 04/5/27(木) 19:49

 ───────────────────────────────────────
 ■題名 : オーバーフロー
 ■名前 : よしろう
 ■日付 : 04/5/27(木) 14:49
 -------------------------------------------------------------------------
   なかなかバグとりが終わりません。Prinのステートメントでオーバーフロー
してしまいます。

条件"total"は6桁の数字(小数点以下無し)
  "ACTIVEDAYS"は小数点1桁

Open "C:\Schedule\scheduledata.txt" For Output As #1

Print #1, "'" + rst.Fields("wellname") + "' 'OPEN' 'LRAT' " + Format(Round(Format(rst.Fields("total") / (MONTHLAST - MONTHFIRST + 1) / Format(rst.Fields("ACTIVEDAYS") / (MONTHLAST - MONTHFIRST + 1)), 5), "0.000"), "@@@@@@@@@@")

これで結果を小数点以下3桁までPrintしたいのですが、どうしたらよいでしょう。
ちなみに上のステートメントではRoundを使ってみました。他にOpenの#1にinteger
と書き加えてみたり、CLngを使ってみました。

 ───────────────────────────────────────  ■題名 : Re:オーバーフロー  ■名前 : クロ  ■日付 : 04/5/27(木) 18:55  -------------------------------------------------------------------------
   Formatが1つ多いような...
それと計算式内でFormat関数を使うとテキスト型になるのでデータ型変換関数で
合った数値型に変換しないとダメと思います。

 ───────────────────────────────────────  ■題名 : Re:オーバーフロー  ■名前 : よしろう  ■日付 : 04/5/27(木) 19:49  -------------------------------------------------------------------------
   ▼クロ さん:
ありがとうございます。私オーバーフローが良くわかってなかったようで、
データが0のときの条件式をいれてみたら解決しました。
>Formatが1つ多いような...
>それと計算式内でFormat関数を使うとテキスト型になるのでデータ型変換関数で
>合った数値型に変換しないとダメと思います。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 638