Vb.net 将数字格式化为字符串
我必须对数字进行格式化,使其精确到“####,####,###.##”格式,并尝试编写如下程序:Vb.net 将数字格式化为字符串,vb.net,Vb.net,我必须对数字进行格式化,使其精确到“####,####,###.##”格式,并尝试编写如下程序: Dim myNum as double = 1255.32 Debug.Print(myNum.ToString("###,###,###.##")) 我可以使用.PadLeft来确保与固定宽度字体对齐,但我的数字没有用此格式字符串正确显示。 如果我用“##0.00”来写的话,我就没有多少时间了 在早期的基本版本中,这很简单,但是。。。 如何在VB.NET中以这种格式显示数字 如果很重要,我的本地
Dim myNum as double = 1255.32
Debug.Print(myNum.ToString("###,###,###.##"))
我可以使用.PadLeft来确保与固定宽度字体对齐,但我的数字没有用此格式字符串正确显示。
如果我用“##0.00”来写的话,我就没有多少时间了
在早期的基本版本中,这很简单,但是。。。
如何在VB.NET中以这种格式显示数字
如果很重要,我的本地小数点是“,”(逗号)
例如:
First source Second source
---------------- ----------------
Price: 97.419,52 97.419,26
Tax: 4.870,98 4.870,96
Brutto: 102.290,50 102.290,24
Temp source
----------------
Price: 0,00
Tax: 0,00 Difference
Brutto: 0,00 - 0,26
CultureInfo
让您可以更好地控制数字格式。示例代码:
Dim culture As Globalization.CultureInfo = New Globalization.CultureInfo(Globalization.CultureInfo.CurrentCulture.Name)
culture.NumberFormat.NumberDecimalSeparator = "."
culture.NumberFormat.NumberGroupSeparator = ","
Dim myNum As Double = 1255.32
Debug.Print(myNum.ToString("N", culture))
CultureInfo
让您可以更好地控制数字格式。示例代码:
Dim culture As Globalization.CultureInfo = New Globalization.CultureInfo(Globalization.CultureInfo.CurrentCulture.Name)
culture.NumberFormat.NumberDecimalSeparator = "."
culture.NumberFormat.NumberGroupSeparator = ","
Dim myNum As Double = 1255.32
Debug.Print(myNum.ToString("N", culture))
你好,瓦罗卡巴斯。这实际上是可行的,但在这里我还应该为每个数字定义左边的填充,以确保对齐?正如我所见,VB已经知道我的CultureInfo,所以只使用“N”就足够了?@user973238请写下一个示例输出,准确解释“对齐”的含义(如果是我所想的,建议的代码会自动解释)。关于仅使用ToString(“N”),请注意,它将从给定计算机中的区域性中获取属性(我认为是克罗地亚语),也就是说,它可能工作(如果属性如您所愿)或不工作。我的代码为给定的文字定义了一个新的区域性,包括您想要的属性,也就是说,它肯定会独立于给定计算机中的区域性工作。感谢您的解释。在这种情况下,我必须在纯文本框中显示一些数字(有疑问地添加),这些数字必须按照显示的方式对齐。我可能会使用html和webbrowser控件,但我决定在没有任何重要原因的情况下使用textbox。当然,我正在尽可能多地使用新的.NET方法,仍然在学习该系统。@user973238最后,我想强调的是,您应该始终尝试使用VB.NET而不是VB6方法(即使它也受VB.NET支持),只要它更新并且通常代表更好的方法(具有更多选项)。例如,在本例中,您是以“VB6方式”思考的(使用对齐对象;尽管您必须澄清这一点);在VB.NET中,通常您有一个属性来处理任何问题,而在CultureInfo中,您有大量的属性。。。(我已经重写了我的评论,因为之前的评论不太清楚)幸运的是,我们的代码窗口中有比例字体,所以你可以看到我的“对齐”。嗨,瓦罗卡巴斯。这实际上是可行的,但在这里我还应该为每个数字定义左边的填充,以确保对齐?正如我所见,VB已经知道我的CultureInfo,所以只使用“N”就足够了?@user973238请写下一个示例输出,准确解释“对齐”的含义(如果是我所想的,建议的代码会自动解释)。关于仅使用ToString(“N”),请注意,它将从给定计算机中的区域性中获取属性(我认为是克罗地亚语),也就是说,它可能工作(如果属性如您所愿)或不工作。我的代码为给定的文字定义了一个新的区域性,包括您想要的属性,也就是说,它肯定会独立于给定计算机中的区域性工作。感谢您的解释。在这种情况下,我必须在纯文本框中显示一些数字(有疑问地添加),这些数字必须按照显示的方式对齐。我可能会使用html和webbrowser控件,但我决定在没有任何重要原因的情况下使用textbox。当然,我正在尽可能多地使用新的.NET方法,仍然在学习该系统。@user973238最后,我想强调的是,您应该始终尝试使用VB.NET而不是VB6方法(即使它也受VB.NET支持),只要它更新并且通常代表更好的方法(具有更多选项)。例如,在本例中,您是以“VB6方式”思考的(使用对齐对象;尽管您必须澄清这一点);在VB.NET中,通常您有一个属性来处理任何问题,而在CultureInfo中,您有大量的属性。。。(我已经重写了我的评论,因为前面的评论不太清楚)幸运的是,我们的代码窗口中有比例字体,所以你可以看到我的“对齐”。