我有一个标签显示了太多的十进制值。
例如
textbox1 = 22
textbox2 = 7
label1 = textbox2/textbox1
我想让label1
转到31.8,但它总是转到31.81818118181818881
我已经试过了:
Dim label1 As String
label1 = (CInt(Me.textbox2.Text) / CInt(Me.textbox1.Text)) * 100
Format(label1, "0.00")
Form3.label1.Text = label1 + " %"
对你的评论:
@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.
我希望它工作完美!
使用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 & " %"
使用substring
和lastindexof
的组合
label1 = textbox2/textbox1
Dim labelText As String = label1.Text
labelText = labelText.Substring(0, labelText.LastIndexOf(".") +2) + "%"
你们把事情弄得更复杂了。小数。ToString有一个重载,你可以传递一个标准的或自定义的数字格式字符串。
在您的情况下,应该使用F{n}
格式说明符,其中{n}
是指示所需小数位数的精度说明符。
label1.Text = (Decimal.Parse(textBox1.Text) / Decimal.Parse(textbox2.Text)).ToString("F2")