Co oznacza "f" przy deklaracji zmiennej?

Co oznacza "f" przy deklaracji zmiennej?
  • Rejestracja: dni
  • Ostatnio: dni
0

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

Kopiuj
public float speed = 150f;
public float jump = 50f;
FR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
1

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

Spine
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6967
Azarien
  • Rejestracja: dni
  • Ostatnio: dni
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:

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

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

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


        void test()
        {
            foobar(3.14);
            foobar(3.14f);
        }
  • Rejestracja: dni
  • Ostatnio: dni
0

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

Wibowit
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: XML Hills
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.

katelx
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Hong Kong
0

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

ale przeciez w javie jest identycznie...

Spine
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6967
0

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

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.