Comment convertir long to int in .net?

Je développe l’application Windows Phone 7 dans Silverlight. Je suis nouveau dans l’application Windows Phone 7. J’ai la valeur longue en format de chaîne comme suit

Ssortingng Am = AmountTextBox.Text.ToSsortingng() 

AmountTextBox.Text.ToSsortingng () dans le code ci-dessus est une valeur longue au format chaîne. Je souhaite stocker une valeur intermédiaire de 15 chiffres dans mon application.

J’ai trouvé le lien suivant pour la conversion.

Puis-je convertir long en int?

Comment dois-je convertir une valeur longue au format chaîne en int? Pouvez-vous me fournir un code ou un lien permettant de résoudre le problème ci-dessus? Si je fais quelque chose de mal, alors guide-moi s’il te plaît.

Vous ne pouvez pas stocker un nombre entier de 15 chiffres car la valeur maximale d’un nombre entier est 2 147 483 647.

Quel est le problème avec une long valeur?

Vous pouvez utiliser TryParse () pour obtenir la valeur long votre entrée utilisateur:

 Ssortingng Am = AmountTextBox.Text.ToSsortingng(); long l; Int64.TryParse(Am, out l); 

Il retournera la valeur false si le texte ne peut pas être converti en texte long , son utilisation est donc très sûre.

Sinon, convertir un long en int est aussi facile que

 int i = (int)yourLongValue; 

si vous êtes heureux de vous débarrasser des MSB et de prendre des LSB.

Utilisez Convert.ToInt32 () . Si la valeur est trop grande pour un int, il générera une OverflowException.

Cette méthode peut prendre toute une gamme de valeurs, y compris Int64 et Ssortingngs.

Vous avez un numéro stocké sous forme de ssortingng et vous souhaitez le convertir en un type numérique.

Vous ne pouvez pas le convertir en type int (également appelé Int32 ) car, comme l’ont indiqué les autres réponses, ce type n’a pas une plage suffisante pour stocker la valeur souhaitée.

Au lieu de cela, vous devez convertir la valeur en long (également appelé Int64 ). La méthode la plus simple et la plus simple consiste à utiliser la méthode TryParse , qui convertit une représentation sous forme de chaîne d’un nombre en son équivalent entier signé de 64 bits.

L’avantage d’utiliser cette méthode (au lieu de quelque chose comme Parse ) est qu’elle ne lève pas d’exception si la conversion échoue. Étant donné que les exceptions sont coûteuses, évitez de les lancer sauf si cela est absolument nécessaire. Au lieu de cela, vous spécifiez la chaîne contenant le nombre à convertir en tant que premier argument de la méthode et une valeur out pour recevoir le nombre converti si la conversion aboutit. La valeur renvoyée est un booléen, indiquant si la conversion a réussi ou non.

Exemple de code:

 private void ConvertNumber(ssortingng value) { Int64 number; // receives the converted numeric value, if conversion succeeds bool result = Int64.TryParse(value, out number); if (result) { // The return value was True, so the conversion was successful Console.WriteLine("Converted '{0}' to {1}.", value, number); } else { // Make sure the ssortingng object is not null, for display purposes if (value == null) { value = Ssortingng.Empty; } // The return value was False, so the conversion failed Console.WriteLine("Attempted conversion of '{0}' failed.", value); } } 

La valeur maximale de Int32 en C # est 2 147 483 647, plus courte que les 15 chiffres requirejs.

Êtes-vous sûr de devoir convertir cette valeur en int? Il semble que vous feriez mieux de stocker la valeur dans une valeur long ou de la laisser sous forme de Ssortingng .

Une valeur Long stocke plus de données qu’une valeur Integer 32. Par conséquent, si vous souhaitez conserver les 15 chiffres, vous ne pouvez pas convertir en un Integer standard.

Mais à part le type de données que vous souhaitez utiliser, la classe Convert devrait vous aider, par exemple Convert.ToInt64, qui peut faire ce que vous voulez.

En C # int a 32 bits et long a 64 bits. Par conséquent, toutes les valeurs de long ne peuvent pas être int . Peut-être obtenir un tableau des int ?

 public static int[] ToIntArray(long l) { var longBytes = BitConverter.GetBytes(l); // Get integers from the first and the last 4 bytes of long return new int[] { BitConverter.ToInt32(longBytes, 0), BitConverter.ToInt32(longBytes, 4) }; }