で合計を計算するために計算を使用するためにはどのように表現文字列持つは、ダブルデータ型
dim dt as new datatable
dim result as double = 0
result = cdbl(dt.Compute(str))
をそして、私はエラーを取得する:
Value is either too large or too small for Type 'Int32'.
この場合、どのように結果データ型を制御できますか?
解決策:
この機能はWindowsの電卓のように機能します。コードはとても混乱が、それは仕事:)
'input = "999,999,999 x 888,888,888 + 112,365 ÷ 15 − 987,653"
Public Shared Function strCalc(ByVal input As String) As String
If input.Substring(input.Length - 1, 1) = " " Then input = input.Substring(0, input.Length - 3)
input = input.Replace("−", "-").Replace("x", "*").Replace("÷", "/").Replace(",", "")
Dim temp As Double = 0
Dim arr() As String = input.Split(" ")
If arr.Length > 1 Then
temp = New DataTable().Compute(If(arr(0).Contains("."), arr(0), arr(0) & ".0") & " " & arr(1) & " " &
If(arr(2).Contains("."), arr(2), arr(2) & ".0"), "")
If arr.Length > 3 Then
For i As Integer = 3 To arr.Length - 1 Step 2
temp = New DataTable().Compute(temp & " " & arr(i) & " " &
If(arr(i + 1).Contains("."), arr(i + 1), arr(i + 1) & ".0"), "")
Next
End If
Return temp
End If
Return input
End Function
まず、あなたはすなわち '薄暗い結果は= CDBL(新しいDataTableに、1行でこれを行うことができます:それは2つの
double
数の乗算として式を考慮するようにランタイムにヒントを与えるには、次のコードを使用してください().Compute(文字列)) '。質問に関しては、私は '999999999.0 'を使うとうまくいくと思います。 – jmcilhinney私にとっては、compute APIはfilterという名前のパラメータをもう1つ必要としています。あなたのコードはどのようにコンパイルされていますか? – RBT
またはそれ以上のこと:「Dim結果As Double = 999999999R * 999999999R'。 "R"はビジュアル基本の「Double」のタイプ文字です。 – Fabio