VB.net:显示十进制值的某些部分

时间:2010-12-10 18:12:41

标签: vb.net

在vb.net中我想拉出整数,十进制,前两位小数,第三位和第四位小数。我一直在绕着解决方案盘旋,但不是那里。

到目前为止我的代码在这里:

 Dim wholenumber As Decimal
    wholenumber = 15.1234

    ' Displays 15
    MsgBox("The whole number is " & Math.Floor(wholenumber))
    ' Displays .1234
    MsgBox("The decimals are " & wholenumber - Math.Floor(wholenumber))
    ' Displays .12
    MsgBox("The first 2 decimals are" & ?????)
    ' Displays .0034
    MsgBox("The third and fourth decimals are " & ????)

4 个答案:

答案 0 :(得分:2)

您希望在数值上调用.ToString()时使用格式说明符(当前在代码中隐式调用,但应该是显式的)。

例如,wholenumber.ToString("##.###")应返回"15.123"

可以找到更多信息here,通过Google搜索“.net字符串格式化”等内容可以找到大量信息和示例。

答案 1 :(得分:0)

' Displays .12
Console.Writeline("The first 2 decimals are " & _
    decimal.Round(wholenumber, 2) - decimal.Round(wholenumber,  0))
' Displays .0034
Console.Writeline("The third and fourth decimals are " & _
    (wholenumber - decimal.Round(wholenumber, 2)))

答案 2 :(得分:0)

如果您想要创造性并使用基本的简单操作完成所有操作,则调用CInt(fullnumber)与Math.floor()相同。您可以通过乘以10的幂来截断和移动小数,从而获得所需的一切。

wholenumber = 15.1234

数字= CInt(wholenumber) = 15

的整数部分

小数为= wholenumber - CInt(wholenumber) = 15.1234 - 15 == 0.1234

前2位小数为= Cint((wholenumber - CInt(wholenumber)) * 100)/100 = CInt(0.1234 * 100)/ 100 == 12/100 == 0.12

第3-4位小数为= wholenumber - CInt(wholenumber*100)/100 = 15.1234 - CInt(1512.34)/ 100 == 15.1234 - 15.12 == 0.0034

等...

答案 3 :(得分:0)

这是我的头脑,但你应该能够使用字符串操作函数来获取小数。像这样......

Dim wholeNumber As Decimal
Dim decimalPosition As Integer

wholenumber = 15.1234
decimalPosition = wholeNumber.ToString().IndexOf("."c)

MsgBox("The first 2 decimals are" & wholeNumber.ToString().Substring(decimalPosition + 1, 2))
MsgBox("The third and fourth decimals are " & wholeNumber.ToString().Substring(decimalPosition + 3, 2))