2011-08-18 79 views
-3

我有一個包含雙類型的變量,例如56.3433253。我想將它轉換爲長類型並保持小數位數。雙類型到長類型

任何想法?

回答

0

long定義爲整數,你怎麼可以有decinals。或者這可能是:

lval as long = math.floor(dval) 
decval as double = dval - lval 
+1

哦不知道long被定義爲integer ty – Sam

0

長64位且總是一個變量爲double,但是您將在點後刪除數字,我建議您使用十進制。

Dim number As Double = 56.3433253 
    Dim number1 As decimal = number 

    me.Text = number1.ToString 

問候。

1

您不能將雙精度型轉換爲長精度型並將小數維數保留在同一個變量中。但是,可以通過除去小數並將小數點後的#值存儲在單獨的變量中,將小數轉換爲長整數。

Dim dbl As Double = 56.3433253 
    Dim lng As Long 
    Dim decimals As Integer 
    Dim tmp As String = String.Empty 

    'Convert to string to parse for decimal place 
    tmp = dbl.ToString 

    If tmp.IndexOf(".") = 0 Then 
     lng = CLng(dbl) 
     decimals = 0 
    Else 
     tmp = tmp.Substring(tmp.IndexOf(".") + 1) 
     decimals = tmp.Length 
     lng = CLng(dbl * Math.Pow(10, decimals)) 
    End If 

    'Convert long value back to a double 
    Dim newDbl As Double = CDbl(lng/Math.Pow(10, decimals)) 

    MsgBox(String.Format("Long: {0}{1}Decimals: {2}{1}Original Value: {3}", {lng, vbCrLf, decimals, newDbl}))