在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 " & ????)
答案 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))