La conversion de string en int sans perdre le zéro au début
J'ai essayé int.parse,
et de la classe convert pour convertir un string en int.
Alors que je suis à la conversion. Je suis de perdre le 0 du début que je ne veux pas.
Ex : 09999 devient 9999 - je ne veux pas de cela.
Je veux la garder comme elle est.
Comment puis-je le faire?
Mathématiquement, le 0 est insignifiant. 09999 et 9999 sont tout aussi neuf mille neuf cent quatre-vingt-dix-neuf. Pourquoi devez-vous garder le zéro initial, si c'est essentiellement le même numéro?
Vous voulez une représentation entière avec un zéro?
Ceci est source de confusion. Est-ce seulement pour l'impression/affichage de cet entier de la valeur?
Ne pas convertir en un
On pouvait compter la longueur de la Chaîne, puis de les convertir en int, faire ce que vous voulez avec elle, puis revenir à la Chaîne, puis ajouter des zéros à son début jusqu'à sa durée est de la même longueur qu'il était avant.
Vous voulez une représentation entière avec un zéro?
Ceci est source de confusion. Est-ce seulement pour l'impression/affichage de cet entier de la valeur?
Ne pas convertir en un
int
.On pouvait compter la longueur de la Chaîne, puis de les convertir en int, faire ce que vous voulez avec elle, puis revenir à la Chaîne, puis ajouter des zéros à son début jusqu'à sa durée est de la même longueur qu'il était avant.
OriginalL'auteur DarthVader | 2011-07-07
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas. Un
int
est censé représenter un objet mathématique entier. Les numéros de09999
et9999
sont exactement le même nombre, mathématiquement.Peut-être il ya un problème différent ici. Pourquoi avez-vous besoin de faire cela? Peut-être il ya une meilleure façon de faire ce que vous voulez faire.
OriginalL'auteur NickAldwin
//D
représente la "Virgule", et 5 est le montant spécifié de chiffres que vous voulez le nombre à toujours. Ce sera tampon de votre valeur avec des zéros jusqu'à 5 chiffres.merci pour réellement répondre à cette question, c'était exactement ce dont j'avais besoin.
OriginalL'auteur Nme
Si vous voulez faire quelque chose comme toujours imprimer votre numéro avec 5 places, il va comme
OriginalL'auteur lincolnk
Non,
int.Parse("09999")
renvoie en fait 0x0000270F. Exactement 32 bits (parce que c'est gros commentint
est), dont 18 sont des zéros (pour être précis, on est un bit de signe, on pourrait dire il y a seulement 17 zéros non significatifs).C'est seulement lorsque vous le convertir en une chaîne de caractères que vous obtenez "9999", de la présence ou de l'absence du zéro dans ladite chaîne est contrôlée par la conversion de chaînes de caractères.
OriginalL'auteur Ben Voigt
vous ne pouvez pas. vous aurez à maintenir la valeur sous forme de chaîne si vous voulez qu'il reste ainsi.
OriginalL'auteur danielea
Int les valeurs ne peuvent pas avoir zéros
int
valeurs n'ont de zéros (zéro bits, qui est).Héhé, vous avez raison! 🙂
OriginalL'auteur Andrey S
Si vous êtes juste la conversion de int pour tester la valeur, de garder à l'origine des données et l'utilisation de la valeur de chaîne lorsque vous le souhaitez le premier zeor. Si vous avez besoin de la entier ont zéro de remplissage après mathématiquement de travail avec elle, vous aurez à le formater avec sprintf ou chaque fois que vous sortie.
OriginalL'auteur Mark
tu ne peux pas, mais si vous avez besoin de convertir en int et de conserver les zéros, vous pouvez créer une copie de celui-ci et ensuite la convertir en int, alors vous aurez deux versions de l'un comme de type int et un string.
OriginalL'auteur aruss
OriginalL'auteur Tushar
Même si c'est un vieux thread, mais cela peut également vous aider:
OriginalL'auteur Gauravsa