使用货币和两位数格式化数字
Format number with currency and two digits
我刚刚开始接触面向对象的编程。我有这个作业,我必须生成以下输出
$ 1215,51
和我的程序returns 1215.50625
这是我的代码,其中 a
是我正在打印的数字(双精度)
txtRe.Text += "Après " + CStr(i) + " ans " + " ==>" + CStr(a) & Environment.NewLine
您可以利用:
value.ToString("C2")
或遵循您的代码:
txtRe.Text += "Après " + i.ToString("C2")
甚至:
Dim value As Double = 12345.6789
Console.WriteLine(value.ToString("C", CultureInfo.CurrentCulture))
Console.WriteLine(value.ToString("C2", CultureInfo.CreateSpecificCulture("fr")))
您似乎使用的是美国或英国的当前文化(因此您的结果中有小数点,而不是法语中使用的逗号)。但是,如果您只是将区域性设置为法语并尝试使用标准货币格式化程序,它可能会抛出一个欧元符号,这将在您的数值之后。最简单的方法是使用法国文化(获取逗号而不是小数点)并手动输入“$”符号,将双精度值转换为定点表示法。
Dim frenchCulture As New CultureInfo("fr-FR")
Dim result As String = "$" & a.ToString("f2", frenchCulture)
你应该使用 string.Format,并在需要时改变文化(Ej:如果你使用法国文化并且你想要 $ 符号)。
//without culture
String.Format("Après {0} ans ==> {1:C2} {2}", i, a, Environment.NewLine)
//with culture
CultureInfo culture = new CultureInfo(cultureName);
String.Format(culture ,"Après {0} ans ==> {1:C2} {2}", i, a, Environment.NewLine)
我刚刚开始接触面向对象的编程。我有这个作业,我必须生成以下输出
$ 1215,51
和我的程序returns 1215.50625
这是我的代码,其中 a
是我正在打印的数字(双精度)
txtRe.Text += "Après " + CStr(i) + " ans " + " ==>" + CStr(a) & Environment.NewLine
您可以利用:
value.ToString("C2")
或遵循您的代码:
txtRe.Text += "Après " + i.ToString("C2")
甚至:
Dim value As Double = 12345.6789
Console.WriteLine(value.ToString("C", CultureInfo.CurrentCulture))
Console.WriteLine(value.ToString("C2", CultureInfo.CreateSpecificCulture("fr")))
您似乎使用的是美国或英国的当前文化(因此您的结果中有小数点,而不是法语中使用的逗号)。但是,如果您只是将区域性设置为法语并尝试使用标准货币格式化程序,它可能会抛出一个欧元符号,这将在您的数值之后。最简单的方法是使用法国文化(获取逗号而不是小数点)并手动输入“$”符号,将双精度值转换为定点表示法。
Dim frenchCulture As New CultureInfo("fr-FR")
Dim result As String = "$" & a.ToString("f2", frenchCulture)
你应该使用 string.Format,并在需要时改变文化(Ej:如果你使用法国文化并且你想要 $ 符号)。
//without culture
String.Format("Après {0} ans ==> {1:C2} {2}", i, a, Environment.NewLine)
//with culture
CultureInfo culture = new CultureInfo(cultureName);
String.Format(culture ,"Après {0} ans ==> {1:C2} {2}", i, a, Environment.NewLine)