Często dane, które posiadamy musimy odpowiednio sformatować przed ich wyświetleniem.
Jeżeli takie dane musimy zwalidować, to warto zadbać, aby walidowane dane były w takim samym formacie jak je wyświetlamy.
Prosty przykład:
Powiedzmy, że mamy metodę pobierającą kwotę faktury:
var invoiceBalance = GetInvoiceBalance();
Kwotę tą otrzymujemy z dokładnością do 4 miejsc po przecinku.
Jednak przez wyświetleniem formatujemy ją:
litInvoiceBalance.Text = invoiceBalance.ToString("C");
Co w wyświetli nam np. 100,00 zł.
Jak widać nasza zmienna wyświetlana jest z dokładnością do 2 miejsc po przecinku.
Dodatkowo załóżmy, że jeżeli pobrana kwota jest większa od 0, umożliwimy użytkownikowi zaznaczenie RadioButton’a, czyli:
if (invoiceBalance > 0)
{
rbMakePayment.Enabled = true;
}
Niby wszystko ok – aplikacja działa. Jeśli kwota jest większa od 0 możemy zaznaczyć RadioButton’a, a jeśli nie to nie możemy.
Problem pojawi się w sytuacji, kiedy nasza procedura zwróci np. 0,0010.
Co wówczas zrobi nasz program? Wyświetli 0,00 zł, ale jednocześnie pozwoli zaznaczyć RadioButton’a 
Dzieje się tak, ponieważ 0,0010 zaokrąglone do dwóch miejsc po przecinku da nam 0,00, ale podczas walidowania kwota jest większa od zera.
Tego typu błędy są czasami ciężkie do wykrycia – kompilator nic nie zgłosi, a i sam błąd występuje rzadko.
Rozwiązaniem w tym przypadku jest zaokrąglenie naszej kwoty przed wyświetleniem i zwalidowaniem, czyli:
var invoiceBalance = GetInvoiceBalance();
invoiceBalance = Math.Round(invoiceBalance, 2);
litInvoiceBalance.Text = invoiceBalance.ToString("C");
if (invoiceBalance > 0)
{
rbMakePayment.Enabled = true;
}
Warto zwrócić uwagę na takie sytuacje.