我有一个显示过多十进制值的标签。
例如,
textbox1 = 22
textbox2 = 7
label1 = textbox2/textbox1
我希望label1
转向31.8,但总是转向31.8181811818181818881
我已经尝试过了:
Dim label1 As String
label1 = (CInt(Me.textbox2.Text) / CInt(Me.textbox1.Text)) * 100
Format(label1, "0.00")
Form3.label1.Text = label1 + " %"
答案 0 :(得分:2)
评论到您的评论:
@KashishArora yes
我会以非常简单的方式做到这一点!
我们首先简单地将Textbox1与Textbox2分开,然后将值存储在标签中,然后将a
整数声明为label1.text
(在变量中不需要它,你可以做直接)。然后我们将使用Math.Round
控件并指定我们想要的小数位数(1或2)。
最后,将a
的值保存回Label1
。
Label1.Text = Val(TextBox2.Text) / Val(TextBox1.Text)
Dim a As Double = Label1.Text
a = Math.Round(a, 2) '2 is number of decimal places
Label1.Text = a
'All the things you want to do with this.
我希望它完美无缺!
答案 1 :(得分:0)
使用String.Format()
...
Dim label1 As String
label1 = (CInt(Me.textbox2.Text) / CInt(Me.textbox1.Text)) * 100
label1 = String.Format("{0:0.0}", label1)
Form3.label1.Text = label1 & " %"
答案 2 :(得分:0)
只需使用substring
和lastindexof
label1 = textbox2/textbox1
Dim labelText As String = label1.Text
labelText = labelText.Substring(0, labelText.LastIndexOf(".") +2) + "%"
答案 3 :(得分:0)
你们都认为这比现在更复杂。 Decimal.ToString有一个超载,您可以传递standard or custom numeric format string。
在你的情况下应使用F{n}
格式说明符,其中{n}
是指示所需小数位数的精度说明符。
label1.Text = (Decimal.Parse(textBox1.Text) / Decimal.Parse(textbox2.Text)).ToString("F2")