出来るのだASP Q&A掲示板(過去LOG)  訪問数 52046 昨日 889 今日 776
    【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。
Topに戻る 掲示板に戻る 検索 削除 管理者

オーバーフローしましたというエラーになります   かすみさん [2002/02/28 15:57:09] [1780]
  Re:オーバーフローしましたというエラーになります   Tomitomiさん [2002/02/28 16:07:17] [1781]
  Re:オーバーフローしましたというエラーになります   北岳さん [2002/02/28 17:04:27] [1784]

[1780] オーバーフローしましたというエラーになります
投稿者:かすみさん 2002/02/28 15:57:09
こんにちは。もう1つ質問させてください。
DBから読んできた合価に0.05をかけた値をワークへ入れているのですが、
「オーバーフローしました。: 'Cint'」
というエラーになってしまいます。
合価はNUMBER(12)なのでフル桁入れてみました。
WK_SHOHIGAKUは
Dim WK_SHOHIGAKUと定義しています。

DmStrSQL = SELECT GOUKA FROM AA_MST "
Set DmOraDs = conn.Execute(DmStrSQL)
WK_SHOHIGAKU = Cint(DmOraDs("GOUKA")) * 0.05

何が原因なのでしょうか

[1781] Re:オーバーフローしましたというエラーになります
投稿者:Tomitomiさん 2002/02/28 16:07:17
こんにちは、Tomitomiです。

> DBから読んできた合価に0.05をかけた値をワークへ入れているのですが、
> 「オーバーフローしました。: 'Cint'」
> というエラーになってしまいます。
> 合価はNUMBER(12)なのでフル桁入れてみました。
> WK_SHOHIGAKUは
> Dim WK_SHOHIGAKUと定義しています。
>
> DmStrSQL = SELECT GOUKA FROM AA_MST "
> Set DmOraDs = conn.Execute(DmStrSQL)
> WK_SHOHIGAKU = Cint(DmOraDs("GOUKA")) * 0.05
>
> 何が原因なのでしょうか

Cintは、 -32,768 〜 32,767 の範囲で変換可能らしいです。
NULLでもエラーになるのでご注意を。
しかし、なんでASPにはVal関数がないのだろ。

[1784] Re:オーバーフローしましたというエラーになります
投稿者:北岳さん 2002/02/28 17:04:27
MSDN Online Library
http://www.microsoft.com/japan/developer/library/default.asp?URL=/japan/developer/library/script56/vtorivbscript.htm
(プラットホームSDKドキュメント−ツール及び開発言語−中略−VBScript)
 
■ユーザーズ ガイド
VBScript のデータ型
整数型(Integer): -32.768 〜 32.767
長整数型(Long): -2,147,483,648 〜 2,147,483,647
単精度浮動小数点数型(Single): 1.401298E-45 〜 3.402823E38
 
■リファレンス
VBScript の関数
CInt 関数:内部処理形式が整数型 (Integer) の Variant にする変換関数です。
CLng 関数:内部処理形式が長整数型 (Long) の Variant にする変換関数です。
CSng 関数:内部処理形式が単精度浮動小数点型 (Single) の Variant にする変換関数です。
------------------------------------------
 
だそうですので、
>合価はNUMBER(12)なのでフル桁入れてみました。
ら、
>Cint(DmOraDs("GOUKA"))
では、3万3千円以上だからエラーが出ますよね。
 
でも12桁(9千・・・億円)?も指定されたら、Longでもダメ。
しょうがないから、1 銭玉も用意して、単精度実数でやりましょう。
そうすれば、合計価格が10の38乗円になるまで安心です。
 
1万円札では10万トンのタンカーで、えっと・・・是非乗らせて!



TreeBBS For ASP V.0.1.3
Program By YasNet