- ベストアンサー
文字列の数値変換(それだけなのですが・・・)
ファイルに角度とCOSとSINのデータが入っていて、 それぞれ360個あります。 この時、SINとCOSのデータを文字列でINPUTしてBASICの中で数値化(VAL関数で)したいのですが、全部0になってしまいます。倍精度(#)、単精度(!)共に試しましたが 駄目でした。 どなたか解決策を教えて下さい。(データは小数点以下6から7)
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Private Sub Command1_Click() Dim strData As String Dim test1 As Integer Dim test2 As Double Dim test3 As Double Dim test4 As String strData = "0.123456" test1 = strData test2 = strData test3 = Val(strData) test4 = Val(strData) strData = _ "test1 = " & test1 & vbCrLf & _ "test2 = " & test2 & vbCrLf & _ "test3 = " & test3 & vbCrLf & _ "test4 = " & test4 MsgBox strData End Sub どの様に文字列データをINPUTしているのか分かりませんが、 格納する変数の宣言を誤っているのでは?
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
Private Sub Form_Load() 's = "0.1234567" s = InputBox("dat=") n = Val(s) Form1.Text1.Text = n End Sub s = "0.1234567"のばあいも s = InputBox("dat=")の場合もどちらも テキストボックスに0.1234567に表示されましたが。Variant型だから?訳がわかりません。
- tinu 2000(@tinu2000)
- ベストアンサー率40% (147/366)
こんばんは、VBのヘルプにこんな事が書いてありますが・・・ Val 関数は、ピリオド (.) だけを有効な小数点の記号として認識します。ピリオドと異なる小数点の記号が使われている可能性があるときは、Val 関数で文字列を数値に変換するよりも、CDbl 関数を使うようにしてください。 外れていたら、すみません。
お礼
ご迷惑をかけてすいません。 どうやらデータの間に空白があると、 無効になるみたいです。 今、消している最中です。 回答ありがとうございました。