Pour #### - ## ## - #### - ####, vous aurez besoin d'un numéro. Mais vous le nourrissez d'une ficelle.
Il serait plus pratique de remplir la chaîne avec des zéros supplémentaires sur la gauche pour qu'elle devienne exactement 16 caractères. Ensuite, insérez le tiret à trois endroits à l'intérieur de la chaîne. Le convertir en un Int64 fonctionnera également mais si ces chaînes deviennent plus grandes ou commencent à contenir des non-numériques, alors vous aurez un problème.
string Key = "123456789";
string FormattedKey = Key.PadLeft(16, '0').Insert(12, "-").Insert(8, "-").Insert(4, "-");
Ceci devrait être une alternative au formatage. Il fait exactement la clé de 16 caractères, puis insère trois tirets de droite à gauche. (Plus facile de garder la trace des indices.)
Il y a probablement beaucoup d'autres alternatives mais celle-ci fonctionne très bien.
Et j'ai essayé ceci, String.Format ("{0: #### - #### - #### - ####}", Double.Parse ("1234567891234567")); Mais je vois comme ça 1234-5678-9123-4568 pourquoi? Double.Parse augmente le dernier chiffre. Je ne comprends pas. – atromgame
C'est un autre problème tous ensemble. Check http://stackoverflow.com/questions/1193630/add-two-double-given-wrong-result –
Double.Parse ("1234567891234567") entraînera une erreur d'arrondi, car un double ne peut contenir autant de chiffres . Un Int64 peut! –