View Full Version : [C#]String.Format per valore in euro
blackskop
24-02-2009, 19:53
Ciao a tutti. Ho la necessità di formattare una stringa trattandola come un prezzo in euro.
La stringa del prezzo deve essere del tipo
1.000.000.000,00
quindi, separatore delle migliaia e virgola per i due valori decimali.
Se ho una stringa "1", il suo valore formattato sarà "0,01".
Se ho "20" ---> "0,20"
Se ho "10011" ---> "100,11"
Se ho "13123.45" ----> "13.123,45"
Se ho "00000002" ---> "0,02"
Se ho "123123.129923" ---> "123.123,12"
Esiste una regular expression apposita?
Se ho una stringa "1", il suo valore formattato sarà "0,01".
Se ho "20" ---> "0,20"
Se ho "10011" ---> "100,11"
Se ho "13123.45" ----> "13.123,45"
Se ho "00000002" ---> "0,02"
Se ho "123123.129923" ---> "123.123,12"
Esiste una regular expression apposita?
Non penso proprio, nel senso che ciò che chiedi è abbastanza "illogico"...
Negli esempi 1,2,3,5 è chiaro che interpreti le cifre come centesimi, ma poi se c'è il punto, negli esempi 4,6, la cifra a sinistra del punto non sarebbe più un centesimo, ma un euro...
Inoltre nell'esempio 6 il troncamento non tiene conto che dopo il 2 c'è un 9, quindi in teoria dovrebbe dare un .13, più che un .12, o sbaglio ?
Secondo me ti fai una piccola classe che interpreta i vari casi e restituisce il risultato. Dubito tu possa farlo in una sola riga di codice ( ma non si sa mai... ;) ).
blackskop
07-03-2009, 13:02
Non penso proprio, nel senso che ciò che chiedi è abbastanza "illogico"...
Negli esempi 1,2,3,5 è chiaro che interpreti le cifre come centesimi, ma poi se c'è il punto, negli esempi 4,6, la cifra a sinistra del punto non sarebbe più un centesimo, ma un euro...
Inoltre nell'esempio 6 il troncamento non tiene conto che dopo il 2 c'è un 9, quindi in teoria dovrebbe dare un .13, più che un .12, o sbaglio ?
Secondo me ti fai una piccola classe che interpreta i vari casi e restituisce il risultato. Dubito tu possa farlo in una sola riga di codice ( ma non si sa mai... ;) ).
Quando inserisco un punto, allora la parte inserita fino a quel momento diventa la parte intera, tutto il seguito sarà la parte decimale. Non deve fare nessun tipo di arrotondamento, deve semplicemente troncare.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.