0

私のフォームにはいくつかのNumericUpDownコントロールが含まれています。これらのコントロールは、さまざまな小数点以下の桁数を示します。コードの後半で、次のように異なるNumericUpDown.Valueを文字列配列に入れました。arrStr()

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

次に、関数を含む配列をFile.WriteAllLinesテキスト ファイルに出力します。たとえばNumericUpDown1.Value = 1.00、ファイルに次の値が含まれている場合NumericUpDown2.Value = 2.30:NumericUpDown3.Value = 2.124

1
2.3
2.124

を見たいのですが:

1.00
2.30
2.124

どちらが機能するか試してみFormatましたが、小数点以下の桁数がそれぞれに既に設定されているため、そのフォーマット方法は便利ではありませんNumericUpDown。もう一度作業を行うのは面倒ですが、今ではFormat.

4

1 に答える 1

1

String.Format小数点以下 2 桁を強制するために使用できます。

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 に答える