FormatNumber / FormatCurrency en C# [Résolu]

jesusonline 6827 Messages postés dimanche 15 décembre 2002Date d'inscription 13 octobre 2010 Dernière intervention - 18 août 2004 à 15:02 - Dernière réponse : zigxag 142 Messages postés jeudi 10 février 2005Date d'inscription 2 octobre 2008 Dernière intervention
- 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)

Merci de bien vouloir m'aider :)

Je travaille avec Visual C# 2005 express donc C#2

Merci

Cyril
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
cs_Crazyht 1524 Messages postés mardi 18 décembre 2001Date d'inscription 21 août 2010 Dernière intervention - 18 août 2004 à 15:48
3
Merci
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

A++

:-p Crazyht :)
MVP Visual C#.NET

[Admin Codes-Sources]
[Membre Developer-Association]

Merci cs_Crazyht 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 124 internautes ce mois-ci

Commenter la réponse de cs_Crazyht
Meilleure réponse
jesusonline 6827 Messages postés dimanche 15 décembre 2002Date d'inscription 13 octobre 2010 Dernière intervention - 18 août 2004 à 16:44
3
Merci
ca marche !!! :question)

J'avais testé le code sur un ancien projet console, et la j'ai refait un projet tout neuf pour ce code, et il m'indique plus d'erreur :)

J'ai meme accés a toutes les propriétés Visual Basic, comme quoi VB nous sert meme quand on fait des projets en C#

Merci de t'etre penché sur le problème

Je sais pas d'ou l'erreur a pu venir, mais c'est qu'une version beta de Visual C# express, donc le problème vient surement de la :)

Merci

Cyril

Merci jesusonline 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 124 internautes ce mois-ci

Commenter la réponse de jesusonline
cs_Crazyht 1524 Messages postés mardi 18 décembre 2001Date d'inscription 21 août 2010 Dernière intervention - 18 août 2004 à 16:21
0
Merci
Sinon voir string.Format (...) mais la je galere a chaque fois avec la doc :)

A++

:-p Crazyht :)
MVP Visual C#.NET

[Admin Codes-Sources]
[Membre Developer-Association]
Commenter la réponse de cs_Crazyht
jesusonline 6827 Messages postés dimanche 15 décembre 2002Date d'inscription 13 octobre 2010 Dernière intervention - 18 août 2004 à 16:39
0
Merci
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
Commenter la réponse de jesusonline
cs_Crazyht 1524 Messages postés mardi 18 décembre 2001Date d'inscription 21 août 2010 Dernière intervention - 18 août 2004 à 16:46
0
Merci
Tu as bien mis la dll dans tes references ?

A++

:-p Crazyht :)
MVP Visual C#.NET

[Admin Codes-Sources]
[Membre Developer-Association]
Commenter la réponse de cs_Crazyht
jesusonline 6827 Messages postés dimanche 15 décembre 2002Date d'inscription 13 octobre 2010 Dernière intervention - 18 août 2004 à 19:25
0
Merci
Apparemment nous ne sommes pas les seuls a ne rien comprendre à la doc de string.format :

--> http://blogs.developpeur.org/themit/archive/2004/08/18/2315.aspx

en tout cas moi il va souvent m'aider :)

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 )

@+

Cyril
Commenter la réponse de jesusonline
zigxag 142 Messages postés jeudi 10 février 2005Date d'inscription 2 octobre 2008 Dernière intervention - 28 mars 2006 à 14:17
0
Merci
Bonjour !
Et comment tranformer un decimal de format 1.15000 en string comme ceci : 1.15 ?
Commenter la réponse de zigxag
zigxag 142 Messages postés jeudi 10 février 2005Date d'inscription 2 octobre 2008 Dernière intervention - 28 mars 2006 à 14:23
0
Merci
oups scuse j'avais mal lu le post
Commenter la réponse de zigxag

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.