Co oznacza "f" przy deklaracji zmiennej?

0

Witam,
mam problem, jak w temacie. Oglądam tutorial i się głowie o co temu człowiekowi chodziło

public float speed = 150f;
public float jump = 50f;
1

Domyślnie wszystkie liczby z przecinkiem w C# to double, a bez int. Dodając f mówisz kompilatorowi że to float.

4

Tak naprawdę w tym miejscu to f nie ma znaczenia, bo zmienna i tak będzie floatem.

Ale gdyby deklarować zmienną lokalną ze słowem var to zaczyna mieć to znaczenie, bo na podstawie typu literału określany jest typ zmiennej:

var a = 15; // int
var b = 15.0; // double
var c = 15d; // double
var d = 15f; // float

podobnie jeśli chcemy wymusić konkretną wersję funkcji:

        void foobar(double a)
        {
            Console.WriteLine("double");
        }

        void foobar(float a)
        {
            Console.WriteLine("float");
        }


        void test()
        {
            foobar(3.14);
            foobar(3.14f);
        }
0

Dziękuje za zacną odpowiedź. Muszę chyba trochę poczytać o c#, bo z javy się przestawiam i nie znam takich myków :p

0

W Javie 10 jest dokładnie tak samo :)

Aktualizacja:
Chodziło mi o 'myki' z varem. Bez vara trzeba użyć 'f' po literale by typy się zgadzały, np: float x = 5.0f przejdzie, a float x = 5.0; już nie.

0

z javy się przestawiam i nie znam takich myków :p

ale przeciez w javie jest identycznie...

0

niespodzianka, w C/C++ też :)

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