2015-10-07 63 views
-1

我刚刚开始使用面向对象的编程。我有这样的功课,我有可能产生以下输出带有货币和两位数的格式号

$ 1215,51

和我的程序返回1215.50625

这是我的代码,其中a是我打印

数量(双)
txtRe.Text += "Après " + CStr(i) + " ans " + " ==>" + CStr(a) & Environment.NewLine 

回答

0

您可以使用:

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"))) 
+0

非常感谢您的帮助!我用它,它的工作。但是,你可以解释C2是什么意思? – Natally

+0

货币,小数点后2位。你可以在这里看到整个解释:https://msdn.microsoft.com/en-us/library/dwhawy9k(v=vs.110).aspx ...而且,既然它帮了你,请投票,如果你认为我值得的。 :) 祝你好运 –

0

你似乎是使用美国或英国当前区域性(因此在结果小数点,而不是一个逗号,而这一点正是用法语)。但是,如果您只是简单地将文化设置为法语并尝试使用标准货币格式化程序,那么它可能会抛出欧元符号,并且这会在数字值之后。最简单的方法是使用法国文化(获取逗号而不是小数点)并手动输入'$'符号,将您的double值转换为定点符号。

Dim frenchCulture As New CultureInfo("fr-FR") 
Dim result As String = "$" & a.ToString("f2", frenchCulture) 
0

您应该使用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)