Arrotondamenti su decimali e formattazione stringhe

lunedì 21 luglio 2008 - 21.03

attilio Profilo | Junior Member

Ciao a tutti
Mi trovo davanti ad un problema di questo tipo:
Gestisco una serie di cifre decimal che sono soggette a sconti (sconti percentuali)
vengono quindi a trovarsi cifre del tipo ES:26,435 che opportunamente modificato in .ToString(F2) mi da come
risultato 26,44
L'arrotondamento avviene senza che io imposti nessuna specifica.
Ho provato impostando valori tipo: #,##0.00 come formattazione di stringa ma non cambia nulla.
Il problema è che non posso tenere il valore a tre cifre dopo la virgola e mi si creano degli scompensi non
indifferenti nei calcoli.
Come posso fare
Spero possiate aiutarmi.

mark81 Profilo | Newbie

Ciao, potresti postare il codice?

attilio Profilo | Junior Member

totSconto = totale * percentualeSconto / 100;
decimal tot = totale - totSconto;
txtTotale.Text = tot.ToString("F2");
dove totale potrtebbe essere 6,15 e percentuale sconto 10
nel txtTotale.Text mi trovo un valore di 5,54 quando invece sarebbe giusto 5,53 perchè il valore intero è 5,535

mark81 Profilo | Newbie

Quello che fa il codice è giusto, perchè fa un arrotondamento alla seconda cifra decimale (a 5 lo fa per eccesso). Se tu vuoi troncare l'importo, ti conviene passare il valore ad una variabile string e troncarlo da la. Spero di essere stato chiaro. Ciao

attilio Profilo | Junior Member

In che modo mi consigli di troncare la stringa senza essere soggetto ad arrotondamenti?

mark81 Profilo | Newbie

textbox1.text = mid(variabile,1,variabile.lenght-1)

Fammi sapere se funziona, io uso Vb.net, ma a quanto ho capito tu usi c#.net.
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