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中,您有大量的属性。。。(我已经重写了我的评论,因为前面的评论不太清楚)幸运的是,我们的代码窗口中有比例字体,所以你可以看到我的“对齐”。