双类型到长类型

时间:2011-08-18 19:31:51

标签: .net vb.net type-conversion

我有一个包含双重类型的变量,例如56.3433253。我想将它转换为long类型并保持小数位。

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

您不能将double转换为long类型并在同一个变量中保持小数。但是,您可以通过删除小数并将小数点后的#值存储在单独的变量中来将小数转换为long。

    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}))

答案 1 :(得分:0)

long定义为整数,你怎么能有decinals。或许这个:

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

答案 2 :(得分:0)

长64位且始终变量为double,但是你将删除该点之后的数字,我建议你使用小数。

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

    me.Text = number1.ToString

问候。