Le numéro est 13911392101301011
et indépendamment de l'utilisation sprintf
ou number_format
je reçois le même résultat étrange.Impression de grands nombres en PHP
sprintf('%017.0f', "13911392101301011"); // Result is 13911392101301012
number_format(13911392101301011, 0, '', ''); // Result is 13911392101301012
sprintf('%017.0f', "13911392101301013"); // Result is 13911392101301012
number_format(13911392101301013, 0, '', ''); // Result is 13911392101301012
Idée aléatoire: Le nombre est-il interprété comme un «float» ou un «double» et arrondi à la valeur valide la plus proche d'un tel type de données? Remarqué qu'il est trop grand pour tenir dans un entier de 32 bits, il pourrait tenir dans un entier de 64 bits mais pas sûr si c'est le cas. – Patashu
Je sais que c'est trop grand, Mais j'ai trouvé en utilisant 'sprintf' ou' number_format' devrait résoudre le problème. Malheureusement, ne fonctionne pas dans ce cas – Omid
Intéressant que '13911392101301014' est imprimé correctement et' 13911392101301011' n'est pas, donc ce n'est pas un problème de gamme –