Funkcja rzutująca błędy występujące na liczbach

Funkcja rzutująca błędy występujące na liczbach
I3
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 28
0

witam
Chciałem się was zapytać czemu w poniższej funkcji rzutującej dokładność wartości liczbowych jest bardzo przeciętna i czemu jak float chce rzutować na short to pomimo że float jest ok. 0.23... to short pokazuje 0 :(

Kopiuj
public static implicit operator Konto(float a)
    {
        int tmpzl = (int)a;
        float tmpgrfloat = a-tmpzl;
        Console.WriteLine("gr: {0}",tmpgrfloat);
        short tmpgr = (short)(tmpgrfloat);
        //Console.WriteLine(tmpgr);
        return new Konto(tmpzl, tmpgr);
    } 
Ktos
  • Rejestracja: dni
  • Ostatnio: dni
1

Ale short (System.Int16) jest typem całkowitoliczbowym, więc w jaki sposób zostanie tam zapisane 0,23? Zostanie zaokrąglone.

I3
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 28
0

o przepraszam za głupie pytanie już poprawiłem a czemu tak konwertowane są te wartości niedokładnie ?
Czy można jakoś poprawić precyzję żeby było idealnie?

patryj1083
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 102

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.