long zu klein
-
das gmp sieht ja abartig aus. such dir lieber eine klasse. init & clear, wo leben wir denn!
und das ganze gerede um int64 und long double und so ist sinnlos. floating points sind nicht genau genug und int64 kann nicht annaehernd 64^8 darstellen.
-
Nur ne Frage .... wieso passt 64^8 nicht in nen Float oder double ?
float = -3.4E38 < x < +3.4E38
Da passt es imho locker rein
nur ned ganz so genau .... auf 6-7 StellenDas ist ja der witz der Flieskommazahlen
Ich hoffe das verwirrt jetzt ned allzusehr ...
ciao ...
-
Du hast ne komische Mathematik:
int64 kann nicht annaehernd 64^8 darstellen.
648=(8*8)8=(23*23)8=(26)8=248 ca. 2.81*10^14 (15 Stellig!)
2^64 ca. 1.84*10^19 (20 Stellig) !!!Da past das aber locker 'rein!!!
@XYZ
Long double hat 19 Stellen, da past 64^8 noch GENAU rein (Das ist der Sinn von long double fuer wissenschaftliche Berechnungen!)@Dimah
Ich dachte die C++ string- Klasse hat Constructoren fur Zahlen oder Konverterfunktionen (Ich mach BCB, der hat sowas). Meine Frage war: Kann damit ein long double konvertiert werden in string? Gibt's sowas in C++?
-
Solche Konvertierungskonstruktoren gibt es nicht. Vielleicht suchst du Stringstreams.
-
Danke Bashar, da bleib ich lieber beim BCB. :p
(Der macht's aber auch nur bis double)[ Dieser Beitrag wurde am 18.03.2003 um 17:23 Uhr von DerAltenburger editiert. ]
-
hi dimah kannst du mir mal bitte erklären was du in der funktion int64tostr machst . also eigentlich was du der insert funktion übergibst...
mfg dohan
-
@Dohan
//ASCII- Code von 'letzter' Stelle an string- Anfang ergebnis.insert( 0, n % 10 + '0' ); //Zahl 'zehnteln n /= 10;
0, : an erste Stelle in String
n%10, : n Modulo 10 (Restwertdivision) = Wert der EinerStelle
+ '0' : ASCICODE von Zeichen Null
-
also der modulo op % liefert den rest einer ganzzahl diviesion z.b.
112 / 10 = 11 Rest 2
5547 / 10 = 554 Rest 7
also man merkt das % 10 einen die letzte ziffer liefert.was bedeutet jetzt dieses + '0'?
'0' ist ein zeichenliteral, ein char und ein char ist nix weiter als eine zahl.
z.b. 48n % 10 + '0' 112 % 10 + '0' 112 % 10 + 48 2 + 48 ------------- 50
und unter 50 ist das ascii zeichen '2'
-
hi ich hab nochmal ne frage warum gibst du den rückgabewert der funktion als const string an(@dimah) bringt das irgendwelche vorteile????
mfg dohan
-
http://fara.cs.uni-potsdam.de/~kaufmann/?page=GenCppFaqs&faq=constcor#Answ
außerdem hinder es mich vor sachen wie
string foo() { return ""; } int main() { foo() = "bar"; }
naja eigentlich habe ich damit kein problem, mehr zeit in anspruch nimmt es wenn ich den leuten erklären muss wieso ich das mache