我正在尝试在我的数据网格中转换我的计算数据库列。我能够计算列并想要修复结果的格式。
Label18.Text = dataset.Compute("Sum(TARGET_AREA)", "") & " (ha)"
我的输出示例是100000.00(公顷) 我想要的输出是看起来像100,000.00(公顷)
我尝试使用.toString(“N”),但没有运气。
我的列类型是十进制,其他类型是Double。
有关如何修复它的想法吗?
答案 0 :(得分:1)
您可以使用String.Format
方法。
实施例
value = 1234.567890
Console.WriteLine(value.ToString("0,0.00", CultureInfo.InvariantCulture))
来源:MSDN Custom Numeric Format Strings.
以下是使用DataTable的示例 - 请注意,如果列允许空值,您可能需要检查总和。此外,这里的总和是通过数据表对象而不是数据集调用的(如你的问题所示) - 这段代码已经从C#自动翻译 - 我认为它在语法上是正确的。
Dim dataset As New DataSet("ds1")
Dim dt As New DataTable("dt")
Dim dc As DataColumn = dt.Columns.Add("TARGET_AREA", GetType(System.Decimal))
Dim dr As DataRow = dt.Rows.Add()
dr("TARGET_AREA") = 100000.0
Dim finalResult As String = ""
Dim value As Decimal
If dt.Rows.Count > 0 Then
Dim result_obj As Object = dt.Compute("Sum(TARGET_AREA)", "")
If result_obj Is System.DBNull.Value Then
value = 0
Else
value = Convert.ToDecimal(result_obj)
End If
finalResult = String.Format(value.ToString("0,0.00", System.Globalization.CultureInfo.InvariantCulture)) & " (ha)"
Console.WriteLine(finalResult)
End If
Console.Read()
Return