String.Format non funziona

lunedì 26 gennaio 2009 - 15.07

patrizia84 Profilo | Junior Member

Ciao.
Ho bisogno di formattare una stringa in una valore currency.
Utilizzo

string prez=inputT.Text.toString();
string result = String.Format("{0:C2}", prez);

ma non mi formatta la stringa..
Dove sbaglio?
grazie a tutti..

balfaz Profilo | Expert

se non sbaglio per usare questa istruzione hai bisogno di usare la libreria Microsoft.VisualBasic
Vb = "imports microsoft.visualbasic", c# = "using microsoft.visualbasic"
oppure prova a fare cosi
String.Format("{0:##,###.00}", prez)

l'unica cosae con questo format dovrai essere tu ad aggiungere il "€"


"Che in questo 2009 i nostri codici possano sconvolgere il mondo."

patrizia84 Profilo | Junior Member

Grazie per il consiglio.
Ho provato a mettere :

string result = String.Format("{0:##,###.00}", 15151515);

e cosi funziona ma quando metto prez al posto del numero 15151515 non funziona.
E' strano!!

balfaz Profilo | Expert

string result = String.Format("{0:##,###.00}", cint(prz));
prova cosi
"Che in questo 2009 i nostri codici possano sconvolgere il mondo."

patrizia84 Profilo | Junior Member

Grazie mille...funziona!!
ho scritto Convert.ToInt32 al posto di cInt.


string result = String.Format("{0:##,###.00}",Convert.ToInt32((prez)));

A presto..

balfaz Profilo | Expert

ja, ja, ja che IGNORANTE SONO, per aggiungere l'euro fai cosi
string result = String.Format("{0:€##,###.00}",Convert.ToInt32((prez)));

ogni tanto mi vengono questi crampi al cervello, che non capisco veramente
"Che in questo 2009 i nostri codici possano sconvolgere il mondo."

Jeremy Profilo | Guru

Prova semplicemente così:
Tuovalore.ToString("C2")

E poi....se riesci, ELIMINA i riferimenti alla Microsoft.VisualBasic.
Hai già tutti i metodi e le funzioni necessarie alle conversioni senza utilizzare questo riferimento.

Facci sapere...
Ciao

patrizia84 Profilo | Junior Member

Buon giorno a tutti!!
Siete molto gentili...
Allora ho provato

prez.ToString("C2");

ma mi dà questo errore : The best overloaded method match for 'string.ToString(System.IFormatProvider)' has some invalid arguments.

Facendo in questo modo mi riporta numero in questa forma :

1,234.57 per esempio.
Io invece voglio questa forma 1.234,57
C'è un modo per formattarla cosi?

Grazie...

Jeremy Profilo | Guru

Facciamo così.....
Inserisci nel tuo progetto una classe vuota e sostituisci TUTTO il suo contenuto con questo codice.

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace WindowsFormsApplication1 { public static class MyExtensions { public static string ToMoney(this String str) { return "€" + decimal.Parse(str); } } }

In questo modo abbiamo creato un metodo Extension che troverai disponibile per tuute le variabili di tipo String...
La funzione ti restituisce un valore string.
Io l'ho scritto senza provarlo...quindi prova a vedere cosa ti restituisce e se va bene per le tue esigenze altrimenti fatti sentire che vediamo come modificarlo.

Facci sapere....
Ciao

patrizia84 Profilo | Junior Member

Ciao.
L'ho scritta ma mi dava degli errori.
Ho risolto lo stesso.
Ho scritto una funzione personalizzata per la formattazione.
Grazie lo stesso..
A presto..
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5