0

我的表单包含几个NumericUpDown控件。这些控件显示不同的小数位数。稍后在我的代码中,我将不同NumericUpDown.Value的 's 放在一个字符串数组中arrStr(),如下所示:

arrStr(1) = NumericUpDown1.Value
arrStr(2) = NumericUpDown2.Value
arrStr(3) = NumericUpDown3.Value

然后我将带有函数的数组打印File.WriteAllLines到文本文件中。例如NumericUpDown1.Value = 1.00,如果文件NumericUpDown2.Value = 2.30NumericUpDown3.Value = 2.124包含以下值:

1
2.3
2.124

我想看看:

1.00
2.30
2.124

我已经尝试过Format哪个有效,但是这种格式化方法并不方便,因为已经为每个设置了小数位数NumericUpDown。再次做这项工作会很烦人,但现在有了Format.

4

1 回答 1

1

您可以使用String.Format强制保留两位小数:

Dim value As Double = 2.3
Dim formatted = String.Format("{0:f2}", value) ' 2.30 '

标准数字格式字符串

编辑:如果你的数组很大并且你想避免:

arrStr(1) = String.Format("{0:f2}", NumericUpDown1.Value)取决于arrStr(86) = String.Format("{0:f2}", NumericUpDown86.Value)

您可以使用 LINQ 创建数组。假设您的NumericUpDown控件都在一个GroupBox被调用的NumericGroupBox. 您可以“注入”正确的小数位数:

Dim arrStr() As String =
        (From n In NumericGroupBox.Controls.OfType(Of NumericUpDown)()
        Select String.Format("{0:f" & n.DecimalPlaces & "}", n.Value)).ToArray()

这是一个搜索TabPages你所有的版本TabControl(如评论):

Dim allNumerics = From tp In Me.TabControl1.TabPages.Cast(Of TabPage)()
                  From n In tp.Controls.OfType(Of NumericUpDown)()
                  Select String.Format("{0:f" & n.DecimalPlaces & "}", n.Value)
Dim arrStr As String() = allNumerics.ToArray()
于 2012-05-15T07:32:58.517 回答