Bonjour,
J'ai besoin d'afficher l'écriture d'un nombre entier en notation scientifique : Par exemple:
La notation scientifique comprend 5 zones :
|Signe|1 chiffre|Séparateur|EE|Signe+Exposant|
Exemple de conversion:
-128 => -1.28EE+2
-32522 => -3.2522EE+4
354555645 => 3.54555645EE+8
Les nombres positifs sont convertis correctement mais sur les nombres négatifs, j'ai un signe "-" qui apparait en fin de chaîne sans raison apparente.
-128 affiche -1.28EE+2-
Avec un Showmessage, l'erreur n'apparait plus... Est-ce un problème d'initialisation de chaine? je vois pas ce qui cloche...
Voici mon code pas fini et optimisé :
merci pour vos éclairages
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 function TForm1.fInttoP10Str(n: LongInt): String; const cr = #13#10; var LMantisse : integer; begin if Pos('-',result) = 1 then begin LMantisse := Length(result)-1; showmessage(Copy(result,1,2)+cr+'.' + Copy(result,3,LMantisse-1)+cr+'EE+'+cr+Inttostr(Length(result)-2)); Result := Copy(result,1,2)+ '.' + Copy(result,3,LMantisse-1)+'EE+'+Inttostr(Length(result)-2); end else begin LMantisse := Length(result); Result := Copy(result,1,1)+ '.' + Copy(result,2,LMantisse-1)+'EE+'+Inttostr(LMantisse-1); end;
Partager