Extended et souci passé un certain nombre de chiffres [Résolu]

Messages postés
88
Date d'inscription
jeudi 25 septembre 2003
Dernière intervention
20 avril 2010
- - Dernière réponse : cs_Jean-Pierre
Messages postés
88
Date d'inscription
jeudi 25 septembre 2003
Dernière intervention
20 avril 2010
- 20 avril 2010 à 14:47
Bonjour,

Voilà, je bute sur un truc tout bête

var
  a, b: Extended;
begin
  a := 1234567890123456; // 16 chiffres
  b := 2;

  ShowMessage(FloatToStr(a * b)); // Résultat = 2,46913578024691E15

  // Extended =	19 chiffres à virgule flottante sur 10 octets
end;


2,46913578024691E15 pour le résultat de cette multiplication, là j'ai encore loupé un truc par rapport à l'extended.

L'autre fois ici, j'avais lu pareil souci, mais je ne retrouve plus ce post. J'ai passé du temps à chercher et que dalle, sniffff alors.

Merci d'avance de votre lumière
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
42
3
Merci
Salut,

c'est la méthode de conversion qui fait la différence :
[hr][b]var

  /ba, b, res: Extended;
  resstr: string;
[b]begin
  /ba :=  1234567890123456;  // 16 chiffres
  b : = 2;
  res :=  a * b;
  Str(res:18:2, resstr);
  ShowMessage(resstr);  // Résultat = 2469135780246912.00
  // Extended  = 19 chiffres à virgule flottante sur 10 octets
end;



[hr]@+Cirec
[hr]

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 120 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Cirec
Messages postés
4307
Date d'inscription
samedi 16 octobre 2004
Dernière intervention
2 janvier 2019
33
3
Merci
var 
  A, B : Int64; // UInt64
begin
  A := 1234567890123456;
  B := 2;

  ShowMessage( format('%.0n or %d',[A * B + 0.0, A*B]) );
end;

________________________________________________________
besoin de câbles audio, vidèo, informatique pas cher ?

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 120 internautes nous ont dit merci ce mois-ci

Commenter la réponse de f0xi
0
Merci
Salut Jean-Pierre

je ne vois pas ce qui te gène dans ton résultat : Si je me trompe 1234567890123456 en écriture scientifique ca donne 1,234567890123456E15. Je ne vois pas ce qui te chiffonne
Commenter la réponse de Utilisateur anonyme
Messages postés
88
Date d'inscription
jeudi 25 septembre 2003
Dernière intervention
20 avril 2010
0
Merci
Salut Francky,

Merci de te pencher sur mon souci du moment.

Tu as raison, mais la majorité des personnes qui verrons ce résultat, risqueront de tomber de leur chaise

Tiens, regarde ici, tu y verras plus clair :
http://www.delphifr.com/codes/CALCULETTE-PLUS_18115.aspx

Quelle est le principe clair et net de sa manip ?
Commenter la réponse de cs_Jean-Pierre
Messages postés
88
Date d'inscription
jeudi 25 septembre 2003
Dernière intervention
20 avril 2010
0
Merci
Un grand merci à vous deux, sans oublier Francky.

fOxy ne souhaitant pas être en reste et me donne en prime un feu d'artifice complémentaire

Ah ce format() tant négligé... En tous les cas, j'en ai encore appris une, enfin plusieurs

Oufff, ça me dépanne un max
Commenter la réponse de cs_Jean-Pierre

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.