Entiers longs (64 bits), ça existe pas ??? - PHP - Programmation
Marsh Posté le 21-05-2003 à 15:32:50
Il y a le bazooka :
http://www.php.net/manual/en/ref.gmp.php
Marsh Posté le 21-05-2003 à 15:36:24
ReplyMarsh Posté le 21-05-2003 à 15:36:45
nero27 a écrit : Voilà, j'ai besoin d'entiers longs en PHP, mais apparemment, c'est pas faisable : c'est hallucinant |
Qu'appelles-tu "entier long" ? Codé sur 32 bits ?
Marsh Posté le 21-05-2003 à 15:43:29
Tetragrammaton IHVH a écrit : |
je crois qu'il veut carrément du 64....
edit: cf discussion sur blabla@prog
Marsh Posté le 21-05-2003 à 15:44:06
backdafuckup a écrit : |
exactement
Marsh Posté le 21-05-2003 à 16:26:54
tu devrais marquer exactement le calcul que tu veux faire ici, parce que ca doit etre faisable en plusieurs etapes, sans entier long (mais perso j'y connais rien en maths, j'ai oublié )
Marsh Posté le 21-05-2003 à 16:28:03
lorill a écrit : tu devrais marquer exactement le calcul que tu veux faire ici, parce que ca doit etre faisable en plusieurs etapes, sans entier long (mais perso j'y connais rien en maths, j'ai oublié ) |
c'est vrai !
Je vais éditer le premier post
Marsh Posté le 21-05-2003 à 16:35:39
Tetragrammaton IHVH m'a proposé de scindé l'entier en deux : est-ce que qq1 peut m'expliquer comment mettre ça en oeuvre, et surtout comment adapter ça à mon calcul ?
Marsh Posté le 21-05-2003 à 16:54:12
euh alors j'ai essayé ton code il marche très bien j'obtiens 32 pour $clé ...
tiens pour les infos du serveur sur lequel j'ai testé:
Apache-AdvancedExtranetServer/1.3.26 (Mandrake Linux/6mdk)
PHP/4.2.3
Marsh Posté le 21-05-2003 à 16:56:54
Anapajari a écrit : euh alors j'ai essayé ton code il marche très bien j'obtiens 32 pour $clé ... |
Si tu prends ta calculette, tu verras que 97 - (1800810033032 % 97) est égal à 7
Marsh Posté le 21-05-2003 à 17:15:57
ouais bon alors j'ai réfléchi c'est normal que ça marche pas ton truc parce quoi qu'il arrive $insee tu le castes en int donc il te le transforme...
Faudrait mieux le caster en float comme c'est expliquer la:
http://www.php.net/manual/fr/langu [...] nteger.php
Mais d'un autre coté j'ai essayé ça marche toujours pas
Marsh Posté le 21-05-2003 à 17:19:01
Anapajari a écrit : ouais bon alors j'ai réfléchi c'est normal que ça marche pas ton truc parce quoi qu'il arrive $insee tu le castes en int donc il te le transforme... |
Ben ouais, il me mets le nombre comme ceci : 1.80081003303E+012
Marsh Posté le 21-05-2003 à 17:30:54
bon je t'ai trouvé une solution ... c'est dégueu mais c'est déjà mieux que rien, tu fais ton calcul sous mysql
select 97 - MOD(1800810033032,97);
normalement ça doit marcher ... mais c'est dégueu
Marsh Posté le 21-05-2003 à 17:33:55
Anapajari a écrit : bon je t'ai trouvé une solution ... c'est dégueu mais c'est déjà mieux que rien, tu fais ton calcul sous mysql |
Ca me plait bien, si je comprends bien, je fais :
Code :
|
C'est ça
Marsh Posté le 22-05-2003 à 09:55:23
presque sauf que la syntaxe pour mysql c'est:
Code :
|
Alors je sens poindre la question "ouuiii mais si j'ai d'autres champs dans mon insert", bin à ce moment la tu fais un truc comme ça:
Code :
|
Marsh Posté le 22-05-2003 à 10:00:32
Anapajari a écrit : presque sauf que la syntaxe pour mysql c'est:
|
Si je comprends bien, tes lignes de code servent à importer les champs de uneAutreTable vers table, non ?
Marsh Posté le 22-05-2003 à 10:15:36
pas du tout
En fait mysql semble mal supporter le insert into ... select ... si tu precises pas de table pour le select ( donc si tu fais insert into table select 97 - MOD(1800810033032,97) ).
Alors l'idée c'est de préciser une autre table car si tu fais par exemple
Code :
|
ça te remontera comme résultat a , b , c , d.
Donc si tu as besoin d'autres champs dans ton insert il suffit de rajouter dans ton select des constantes ( et pas des noms de champs de uneAutreTable )... Fus-je plus clair?
Marsh Posté le 22-05-2003 à 11:01:22
ok, mais c'est pas très propre tout ça
Là, je suis en train de tester la concaténation de deux entiers
Marsh Posté le 22-05-2003 à 12:18:57
kadreg a écrit : |
d'habitude on propose la corde... mais bon le bazooka pourquoi pas... (blueflag déguisé)
Marsh Posté le 22-05-2003 à 13:20:09
zion a écrit : |
Et bien, personnellement, je suis en train de tester la concaténation de deux entiers (après avoir préalablement scindé l'entier long en deux), mais le pb, c'est que qd le deuxième nombre commence par un ou plusieurs "0", je les perds au final :
ex :
1874467005485 donne 1874467.005485
et au final, ça me donne :
18744675485
Marsh Posté le 22-05-2003 à 13:52:17
bon reprenons
en fait le modulo a pas l'air de marcher super sur des aussi grand float mais en le faisant à la main apparament ça marche, donc le code donne:
Code :
|
Marsh Posté le 22-05-2003 à 13:54:30
Anapajari a écrit : bon reprenons
|
Je teste ça de suite
Marsh Posté le 21-05-2003 à 15:30:37
Voilà, j'ai besoin d'entiers longs en PHP, mais apparemment, c'est pas faisable : c'est hallucinant
Voilà ce que je voudrais faire, si ça marchait :
Seulement, $insee est trop long pour que ça fonctionne
Message édité par nero27 le 22-05-2003 à 11:05:37