• ベストアンサー

文字列の数値変換(それだけなのですが・・・)

ファイルに角度とCOSとSINのデータが入っていて、 それぞれ360個あります。 この時、SINとCOSのデータを文字列でINPUTしてBASICの中で数値化(VAL関数で)したいのですが、全部0になってしまいます。倍精度(#)、単精度(!)共に試しましたが 駄目でした。 どなたか解決策を教えて下さい。(データは小数点以下6から7)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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)
回答No.2

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型だから?訳がわかりません。

eva2015
質問者

お礼

ご迷惑をかけてすいません。 どうやらデータの間に空白があると、 無効になるみたいです。 今、消している最中です。 回答ありがとうございました。

回答No.1

こんばんは、VBのヘルプにこんな事が書いてありますが・・・ Val 関数は、ピリオド (.) だけを有効な小数点の記号として認識します。ピリオドと異なる小数点の記号が使われている可能性があるときは、Val 関数で文字列を数値に変換するよりも、CDbl 関数を使うようにしてください。 外れていたら、すみません。

関連するQ&A