使用货币和两位数格式化数字

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)