0
votes

Que signifie "1e"?

J'ai vu du code en ligne et j'essaie de déterminer ce que cela fait. En particulier, je n'ai jamais vu la convention "1e" avant. XXX

c

1 commentaires

Est-ce juste moi ou ce code ne compilait-il pas? À peu près sûr que vous avez des types de conflits pour actuel ici


4 Réponses :


1
votes

C'est 1e6

NOTATION SCIENTIFIQUE POUR MATH.POW (10, 6) == 1000000

/ * Oui, vous pouvez le faire avec à peu près tout langage de programmation standard , y compris C * /


0 commentaires

4
votes

c'est 1e6, pas le6, et cela signifie 1 * 10 ^ 6 ou 1000000.0

C'est une notation scientifique.


1 commentaires

M. Grayson est correct, cependant: cela signifie "100000.0", pas "100000".



4
votes

in c, 1e6 a type double et sa valeur est 1 fois 10 élevée à la 6ème puissance. C'est équivalent à 1000000.0 .

Ne vous laissez pas berner par les autres réponses: 1e6 ne signifie pas signifie la même chose que 1000000 in c, car 1e6 a type double pendant que 1000000 aura du type d'entier. Il existe de grandes différences de comportement entre types de points flottants tels que double et entiers.

La syntaxe des numéros d'écriture comme 1e6 est définie dans la section "Constantes flottantes" du C11 Spécification (et versions antérieures aussi). C'est un peu comme Notation scientifique .


1 commentaires

Donc, il ne faut pas être confondu avec le "E" mathématique (numéro d'Euler: en.wikipedia. org / wiki / e_ (mathématique_constant) )? Et si nous devions l'utiliser?



2
votes

J'ai vu du code en ligne et j'essaie de déterminer ce qu'il est Faire. En particulier, je n'ai jamais vu la convention "1e" avant. P>

Comme d'autres personnes ont mentionné, pratiquement parlant, 1e6 code> est une notation scientifique pour 10 ^ 6 qui est 1000000 ou mieux connue sous le nom de 1 million. Mais comme cela a déjà été mentionné, par David, il est réellement traité comme un double code> in c et la valeur est en réalité 1000000.0 code>. P>

mais je me sens Comme ces réponses ne se concentrent que sur cette pièce spécifique em> du code que vous avez fourni et non du tout, je voulais donc fournir un contexte supplémentaire pour vous puisque vous essayez de déterminer ce que le code fait. p>

pour ces lignes: p>

uint64_t convertedTime = (uint64_t)currentTime * 1e6;


1 commentaires

uint64_t convertiTime = (uint64_t) actuel * 1e6; est un code faible. Il peut forcer (uint64_t) courante dans un double et perdre précision, uniquement pour multiplier et convertir le retour sur uint64_t .