jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 2010
-
18 août 2004 à 15:02
zigxag
Messages postés142Date d'inscriptionjeudi 10 février 2005StatutMembreDernière intervention 2 octobre 2008
-
28 mars 2006 à 14:23
J'aimerais connaitre l'équivalent de FormatNumber / FormatCurrency en C#
Ces deux fonctions sont situé dans l'assembly Microsoft.VisualBasic.dll j'ai essayé de faire un import mais je peux rien en faire.
j'ai ecrit ce programme en VB.net
Dim s As String = FormatNumber(5.125, 2)
Dim s2 As String = FormatCurrency(5.125, 2)
je l'ai compilé puis décompiler via Reflector, et j'ai traduit le code IL en C# toujours via Reflector (cette astuce m'a bcp aidé pour traduire des codes Vb<=>C#)
et le code qui me donnait pour les deux lignes suivante sont :
string text1 = Strings.FormatNumber(5.125f, 2, TriState.UseDefault, TriState.UseDefault, TriState.UseDefault);
string text2 = Strings.FormatCurrency(5.125f, 2, TriState.UseDefault, TriState.UseDefault, TriState.UseDefault);
J'ai essayé ca, mais ca marche pas :(
le code IL est
L_0016: call string [Microsoft.VisualBasic]Microsoft.VisualBasic.Strings::FormatNumber(object, int32 etc....(valeur par defaut)
cs_Crazyht
Messages postés1522Date d'inscriptionmardi 18 décembre 2001StatutMembreDernière intervention21 août 20108 18 août 2004 à 15:48
string s = monfloat.ToString ("# ###.##");
En 2.0 j'ai pas encore essayé, mais en 1.x ceci fonctionnait a merveille :)
Mais en fait ta traduction devrait fonctionner si tu as bien la references a la DLL Microsoft.VisualBasic.dll dans ton projet et un beau using en haut :p
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 18 août 2004 à 16:39
Oui je connais l'astuce, mais j'ai aussi besoin de FormatCurrency, et certaines options sont bien agreables :)
ca evite de coder bcp de choses par exemple pour faire ca :
Dim i2 As Integer = 4
Dim MonCompteEnBanqueDansMesReves As Decimal = 99999999.99999
Dim Resultat As String = FormatCurrency(MonCompteEnBanqueDansMesReves, i2, , , TriState.True)
Console.WriteLine(Resultat)
Console.ReadLine()
ce qui m'affiche 100 000 000,0000 € (<-- signe €)
en vb il faut qu'une ligne grace à FormatCurrency en C# il va falloir tout recoder, et il y a qd meme pas mal de choses à faire ...
pour info le code C# traduit via Reflector est :
public static void Main()
{
int num1 = 4;
decimal num2 = new decimal(1316134911, 2328, 0, false, 5);
string text1 = Strings.FormatCurrency(num2, num1, TriState.UseDefault, TriState.UseDefault, TriState.True);
Console.WriteLine(text1);
Console.ReadLine();
}
(j'ai été surpris par le constructeur du decimal :big) )
Je pensais donc faire un using mais ca a pas l'air de marcher :sad)
Une idée ?
Cyril
Vous n’avez pas trouvé la réponse que vous recherchez ?
pour ce qui est du bug, je sais pas si ca vient de ne pas avoir ajouté la dll dans mes references, mais c'est possibles car je me rappelle plus de l'avoir fait (finalement c'est peut etre pas de la faute de la version beta :-p )