Extended et souci passé un certain nombre de chiffres

Résolu
cs_Jean-Pierre Messages postés 82 Date d'inscription jeudi 25 septembre 2003 Statut Membre Dernière intervention 20 avril 2010 - 20 avril 2010 à 10:50
cs_Jean-Pierre Messages postés 82 Date d'inscription jeudi 25 septembre 2003 Statut Membre 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

4 réponses

Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
20 avril 2010 à 12:17
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]
3
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
20 avril 2010 à 13:20
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 ?
3
Utilisateur anonyme
20 avril 2010 à 11:09
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
0
cs_Jean-Pierre Messages postés 82 Date d'inscription jeudi 25 septembre 2003 Statut Membre Dernière intervention 20 avril 2010
20 avril 2010 à 14:47
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
0
Rejoignez-nous