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

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 :(

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);
    } 
1

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

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?

1 użytkowników online, w tym zalogowanych: 0, gości: 1