Entiers en JavaScript
Je suis un débutant en Javascript, donc pardonnez-moi si j'ai l'air stupide, parce que j'ai appris un peu de Javascript à partir de W3Fools (qui sont vraiment difficile tutoriels - ils de ne pas expliquer ce que je veux savoir, mais tout ce que je peut probablement deviner à partir de mon expérience avec C++).
J'ai peut-être passer à MDN, mais si vous pouvez recommander tout autres tutoriels, qui sera grande.
De toute façon, donc voici ma question:
Je viens de lire quelques lignes de cette, et apparemment:
Numéros sont en JavaScript
"double précision 64 bits format IEEE
754 valeurs", selon la spécification.
Ce qui a une certaine intéressant
conséquences. Il n'y a pas une telle chose comme
un entier en JavaScript, si vous avez
pour être un peu prudent avec votre
arithmétique si vous avez l'habitude de mathématiques en C
ou Java.
J'ai déjà vu qu'il sont quelques-uns des types de données (variables) je suis habitué à partir de C++. Mais je ne m'attendais pas à tous les numéros automatiquement float
s. N'est-il pas un moyen d'utiliser int
egers, pas float
? Une version future de prise en charge de JavaScript int
s?
- MDN est une grande ressource et il est souvent référencé ici, DONC.
Vous devez vous connecter pour publier un commentaire.
Il ya vraiment seulement quelques types de données en Javascript: les Objets, les nombres et les chaînes. Comme vous le lire, JS nombres sont tous 64-bit flotteurs. Il n'y a pas ints.
Firefox 4 sera un support pour les Tableaux Typés, où vous pouvez avoir des tableaux de réel entiers et tels: https://developer.mozilla.org/en/JavaScript_typed_arrays
Jusqu'alors, il y a hackish des moyens de stocker l'entier des tableaux de chaînes de caractères, et l'épilation de chacune des nombres entiers à l'aide
charCodeAt()
.Je ne pense pas qu'il aura jamais le soutien des entiers. Il n'est pas un problème que tous les non signé entier de 32 bits, peuvent être représentés avec précision en 64 bits à virgule flottante nombre.
Moderne moteurs JavaScript pourrait être assez intelligent pour générer un code spécial lorsque les nombres sont des entiers (avec sauvegarde des contrôles visant à vérifier), mais je ne suis pas sûr.
Utiliser ceci:
Et yo pouvez l'utiliser comme ceci:
Math.floor
?var int = Math.floor;
pour éviter le supplément de l'appel de fonction.(a | 0)
?int
s", qui ont seulement 32b sur de nombreuses largement utilisé sur des architectures de sorte qu'il n'est pas clair qu'il y a une perte de précision de la askers point de vue.Il est le soutien de zéro pour les entiers. Il devrait être une simple question de l'arrondi à une variable à chaque fois que vous en avez besoin. La charge de travail n'est pas mauvais du tout.
Si vous avez vraiment besoin d'utiliser les nombres entiers, il suffit d'utiliser le sol de la méthode sur chaque numéro que vous rencontrez.
Autre que cela, la dactylographie de Javascript est un de ses points forts.