web-dev-qa-db-fra.com

Que signifient F et D à la fin des littéraux numériques?

J'ai vu certains de ces symboles, mais je ne trouve rien d'étrange avec cela,

double d = 5D;
float f = 3.0F;

Que signifie exactement D et F derrière 5?

37
Ben C.

Signifie que ces nombres sont respectivement doubles et flottants. Suppose que tu as

void foo(int x);
void foo(float x);
void foo(double x);

et ensuite vous appelez

foo(5)

le compilateur peut être dérouté. C'est pourquoi vous pouvez indiquer 5, 5f ou 5.0 pour spécifier le type.

44
EboMike

D signifie double 

F pour float 

vous pouvez lire sur les types primitifs de base de Java ici 

http://download.Oracle.com/javase/tutorial/Java/nutsandbolts/datatypes.html

Je tiens à souligner que l'écriture

5.1D ou 5.1: si vous ne spécifiez pas de lettre type pour un numéro de virgule, le nombre par défaut est double

5: sans le point, par défaut c'est un int

18
Jason Rogers

Ce sont des spécificateurs de format pour les littéraux flottants et doubles. Lorsque vous écrivez 1.0, il est ambigu de savoir si vous voulez que le littéral soit un float ou un double. En écrivant 1.0f, vous indiquez à Java que vous voulez que le littéral soit un float, alors que 1.0d spécifie qu'il doit s'agir d'un double. Il y a aussi L, qui représente long (par exemple, 1L est un long 1, par opposition à un int 1)

6
Jeff

D signifie double et F signifie float. Vous aurez parfois besoin d'ajouter ces modificateurs, car 5 est considéré comme un entier dans ce cas et 3.0 est un double.

2
Ronnie Howell

Il définit le type de données pour les constantes 5 et 3.0. 

0
Joshua Martell

Comme d'autres l'ont mentionné, il s'agit des définitions de type. Toutefois, vous verrez moins probablement que i ou d soient mentionnées car il s'agit des valeurs par défaut.

float myfloat = 0.5; 

sera une erreur car 0.5 est un double par défaut et vous ne pouvez pas passer de double à float (64 -> 32 bits) mais

double mydouble = 0.5;

n'aura aucun problème

0
Theresa Forster