2011-01-11 118 views
8

Aquí está el código explicativo. El lenguaje es Java y el código usa Android.¿Qué significa el sufijo 'f' en el código de Java?

fg.setTextSize(height*0.50f); //<-'f' is in the brackets 

o

@Override 
protected void onSizeChanged(int w, int h, int oldw, int oldh) { 
    super.onSizeChanged(w, h, oldw, oldh); 
    sWidth = w/3f; // <-'f' is here 
} 

¿Qué significa el sufijo 'f'?

+0

Posible duplicado de [¿Qué significa F y D al final de los literales numéricos?] (Http://stackoverflow.com/questions/4331200/what-do-f-and-d-mean-at-the- fin-de-literales-numéricos) – Ivar

Respuesta

13

Indica un literal float.

+0

Es difícil de entender para un chico que viene de .NET :). De todos modos, ¿es como el casting? Es el mismo 3f y (float) 3? ¿Qué pasaría si lo omito? – sandalone

+1

Entonces sería un número entero. L se utiliza para long, d para double – Kennet

+3

Al soltar la f de w/3f se producirá una división de enteros, en lugar de división de coma flotante porque 3 es un int mientras que 3f es un flotante. Tanto 3f como ((flotante) 3) se evaluarán con el mismo valor, pero (flotante) 3 se pueden convertir en tiempo de ejecución, mientras que 3f siempre se evalúa en tiempo de compilación. – ILMTitan

2

flotador;)

que es un 3 que es un flotador, no un int

2

Es un flotador, no una doble. Esta es la notación básica de Java (C).

5

Indica que 3 es flotante no entero, en otro caso 0.50 es flotante, no doble. Al igual que en cualquier otro programa de Java.

1

No necesita agregar el f si ingresa 0 o 1 o durante ciertas asignaciones. Pero otras veces lo necesitas especialmente cuando el compilador no puede decir si es un flotante o un doble o un int o necesita lanzar el valor de alguna manera. Es enloquecedoramente inconsistente en realidad.

Cuestiones relacionadas