Existe-t-il un compilateur qui ait une directive ou un paramètre pour lancer le calcul d'entier pour flotter implicitement. Par exemple:Coulée implicite Calcul de l'entier pour flotter en C++
float f = (1/3)*5;
cout << f;
le "f" est "0", parce que les constantes de calcul (1, 3, 10) sont des nombres entiers. Je veux convertir le calcul d'entier avec une directive ou un paramètre de compilateur. Je veux dire, je ne vais pas utiliser la coulée explicite ou préfixe « .F » comme ça:
float f = ((float)1/3)*5;
ou
float f = (1.0f/3.0f)*5.0f;
Connaissez-vous c/C++ compilateur qui a un paramètre pour faire de ce processus sans casting explicite ou ".f" chose?
Vous modifieriez la sémantique du langage sous-jacent si vous pouviez le faire - ce n'est généralement pas une bonne idée. Peut-être que vous seriez plus heureux avec un langage de programmation complètement différent qui a une sémantique pour les expressions int/float qui sont plus à votre goût? –
BTW: dans le second cas, une seule des constantes '1' et' 3' doit être flottante. L'autre constante et le '5' seront automatiquement promus. De plus, vous n'avez pas besoin de les définir pour être 'float', les doubles seront implicitement rétrogradés à float:' float f = (1.0/3) * 5' fera l'affaire (ou '5.0/3'). –
@David: "le 5 va automatiquement promouvoir", j'avais l'impression que lorsque les constantes intégrales plus petites que int sont converties en int alors on dit qu'elles sont "promues", mais dans tous les autres cas on dit simplement "converti". –