Aus Array ein double extrahieren (Ganzzahl)
-
Hallo,
Bin etwas ratlos... ich will aus einem Eingabearray eine Zahl extrahieren...
(Ich weiß das man es einfacher machen kann, aber es MUSS ein String sein)
Naja also wenn ich 123 also "hunderdreiundzwanzig" eingebe wird ja
[1,2,3,\n,\0] im Array abgelegt...Wie bekomme ich jetzt 123 in ein double?
Gruß,
king-al
-
so:
char str[BUFSIZ]; double var = 0.0; int i; get ( str ); // in den string einlesen // umwandeln mit dem horner schema for ( i = 0; str[i] != '\0'; i ++ ) { var = (var + str[i] - '0') * 10; } var = var / 10;
Edit: im string steht nicht {'1','2','3','\n','\0'}, weil das \n wird durch das
\0 ersetzt, also steht im string {'1','2','3','\0'}
mfg Gaste
-
Das gute, alte Horner Schema... vielen Dank, es funktioniert ausgezeichnet!
king-al
-
Alternativ kannst du auch atof() benutzen, das unterstützt auch exponentielle Darstellungen.