PDA

View Full Version : [C#] numeri float


CL4UD1O83
18-11-2009, 17:36
Ciao a tutti,
volevo sapere se esiste un modo per impostare il formato dei numeri float in C#. Mi spiego meglio, non voglio formattare il numero per la visualizzazione ma voglio che venga memorizzato ad esempio con una sola cifra decimale dopo la virgola.
Grazie in anticipo

Kralizek
18-11-2009, 22:46
usa il tipo decimal ;)

CL4UD1O83
19-11-2009, 08:19
purtroppo devo lavorare con dati a 32 bit, penso che l'unica soluzione sia quella di formattarli ogni volta che li visualizzo...

gugoXX
19-11-2009, 08:29
Float sta per floating point, ovvero punto decimale flottante.
A seconda della magnitudo del valore memorizzato, si hanno diverse cifre di precisione decimale, eventualmente 0.
Ovvero gia' anche con i float normali ci sono casi in cui la precisione dopo la virgola e' di un e un solo decimale.

Tu staresti forse cercando un "Fixed point".
Ci sono esempi di classi in giro, piu' o meno dettagliate, per quello che ti serve.

CL4UD1O83
19-11-2009, 09:24
ok, ti ringrazio per la spiegazione!

Kralizek
19-11-2009, 10:12
dai un'occhiata a questo trucchetto:

http://stackoverflow.com/questions/605124/fixed-point-math-in-c

magari puoi scriverti una classe che incapsula questa logica :)

CL4UD1O83
19-11-2009, 13:10
ho trovato un metodo semplice che sfrutta Math.Round():

float n = 123.456F;
n = (float)Math.Round(n, 1)

restituisce il numero come serve a me...