AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Wissenschaftliche Notation in "normale" Zahl umwandeln
Thema durchsuchen
Ansicht
Themen-Optionen

Wissenschaftliche Notation in "normale" Zahl umwandeln

Ein Thema von Polarwar · begonnen am 11. Okt 2006 · letzter Beitrag vom 11. Okt 2006
Antwort Antwort
Seite 1 von 2  1 2      
Polarwar

Registriert seit: 14. Dez 2005
39 Beiträge
 
Delphi 2006 Enterprise
 
#1

Wissenschaftliche Notation in "normale" Zahl umwan

  Alt 11. Okt 2006, 11:45
Hallo zusammen,

ich habe da mal wieder ein kleines Problem! Entweder ich habe mein Programmierwissen am
letzten WE geschrottet, ich steh einfach nur auf der Leitung, oder ich bin wirklich nicht inteligent
genug??

Ich bekomme in einer CSV-Datei Daten geliefert, die ich in eine Datenbank importieren möchte, soweit kein Problem.
Nun steht da in einem Feld eine wissenschaftliche Zahl (1,74E+12) und die möchte ich als "echte" Zahl in mein Prg einlesen.
Ich kann diese Daten nur nicht einlesen, da er meckert es wäre keine richtige Zahl?

Wie kann man sowas formatieren, ich möchte doch einfach nur 174000000001 als normale Zahl haben.

Hilfe wäre Klasse....

Gruß
Polarwar
Wir haben den Bezug zur Realität verloren, aber die findet uns schon wieder!
  Mit Zitat antworten Zitat
dino

Registriert seit: 15. Jul 2006
Ort: Bad Münstereifel
627 Beiträge
 
Delphi 5 Professional
 
#2

Re: Wissenschaftliche Notation in "normale" Zahl u

  Alt 11. Okt 2006, 12:26
zunächst ist 1,74E+12 = 1740000000000 und nicht 174000000001 und ausserdem bedeutet1,74E+12, dass du 1,74 * (10hoch12) nehmen musst.
jetzt musst du deinen string(alles, was etwas wie E hat kann scon keine Zahl sein) in den Teil vor dem E und dem Teil nach dem E zerlegen, dann dass , in . übersetzen.
dann 1.74 in ne Zahlvariable bringen, dass selbe mit +12 und dann 1.Zahl * (10 hoch 2.Zahl) nehmen

hoch ist doch das ^ Zeichen oder? also i:=i1*(10^(i2))
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Wissenschaftliche Notation in "normale" Zahl u

  Alt 11. Okt 2006, 12:34
Wie liest du es ein?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Wissenschaftliche Notation in "normale" Zahl u

  Alt 11. Okt 2006, 12:48
Ähm, wofür gibt es StrToFloat?
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
dino

Registriert seit: 15. Jul 2006
Ort: Bad Münstereifel
627 Beiträge
 
Delphi 5 Professional
 
#5

Re: Wissenschaftliche Notation in "normale" Zahl u

  Alt 11. Okt 2006, 12:59
kann strtofloat auch 1,74E+12???
tatsächlich kann er

das ergebnis ist aber ein integer oder nicht?
  Mit Zitat antworten Zitat
r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#6

Re: Wissenschaftliche Notation in "normale" Zahl u

  Alt 11. Okt 2006, 13:05
Zitat von dino:
kann strtofloat auch 1,74E+12???
tatsächlich kann er

das ergebnis ist aber ein integer oder nicht?
Wieso Integer? Heißt nicht umsonst StrToFloat...

Die Funktion muss schließlich auch mit sowas zurande kommen: 1,75E-5

mfg

Chrstian
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Wissenschaftliche Notation in "normale" Zahl u

  Alt 11. Okt 2006, 13:06


Natürlich, strtofloat heißt strtofloat, weil es einen Ingeger zurückgibt.

Eine Zahl dieser Größenordnung ist sowieso zu groß für einen Integer, wenn dann geht ein Int64.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Polarwar

Registriert seit: 14. Dez 2005
39 Beiträge
 
Delphi 2006 Enterprise
 
#8

Re: Wissenschaftliche Notation in "normale" Zahl u

  Alt 11. Okt 2006, 14:22
Hmm, das mit dem StrToFloat klappt bei mir nicht. Wenn ich einer Floatvar einen solchen Wert
zunorde kommt da mit constanter Bosheit eine Null raus!!

fDummy := StrToFloat('1,74E+12');

Das Ergebnis kann nicht 0 sein, besser gesagt es darf nicht null sein!

Ich möchte doch einfach nur eine gaaannnz normale Zahl haben und nicht son wissenschaftlichen String!

Gruß
Polarwar
Wir haben den Bezug zur Realität verloren, aber die findet uns schon wieder!
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Wissenschaftliche Notation in "normale" Zahl u

  Alt 11. Okt 2006, 14:27
Welchen Typ hat fDummy? Welche Delphi-Version hast du? Wie gibst du das Ding aus?

Folgender Code funktioniert bei mir (D7 Personal) prima:
Delphi-Quellcode:
{$O-} //Damit der Compiler fDummy nicht wegoptimiert

procedure TForm1.FormCreate(Sender: TObject);
var fDummy: Real;
begin
fDummy := StrToFloat('1,74E+12');
end;
Wenn ich auf das end; nen Haltepunkt setze und den Evaluator anschmeiße, kriege ich den korrekten Wert.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
uwewo

Registriert seit: 14. Jul 2004
Ort: Karlsruhe
479 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Wissenschaftliche Notation in "normale" Zahl u

  Alt 11. Okt 2006, 14:30
Erstelle mal eine Form mit 2 Labels und ein Button,
dann vergib für die Caption von Label1 den Wert 1,74E+12.
Beim Ereignis von Button1.OnClick schreibst Du

Label2.Caption := FloatToStr(StrToFloat(Label1.Caption)); Du wirst sehen es funktioniert
Uwe
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz