Hallo und guten Morgen,
kann mir evtl. ein/e Kundige/r sagen warum nachfolgende Auswertungen mit stringlen nicht die gleichen Ergebnisse bringen?
Vielen Dank. MfG
uuchip
Hallo und guten Morgen,
kann mir evtl. ein/e Kundige/r sagen warum nachfolgende Auswertungen mit stringlen nicht die gleichen Ergebnisse bringen?
Vielen Dank. MfG
uuchip
keine ahnung, aber ich habe da nochetwas interessantes rausgefunden, was ich mir auch nicht erklären kann, nämlich das hier:
[autoit]msgbox(0,"Funktion string", string(4668731596684224866951378664))
[/autoit]
das kommt nicht das raus, was du da eingegeben hast!
mfg
Hauke
Na überlegt doch mal, welche Zahlen maximal in AutoIt angezeigt werden. (Integer)
Wer es ohne Überlegen testen will: Einfach in einer Schleife mit Ziffer 9 beginnen (ConsoleWrite) und die Zahl jeweils um eine 9 ergänzen.
Ich glaube, dann wird klar warum die Stringlänge nicht stimmen kann.
keine ahnung, aber ich habe da nochetwas interessantes rausgefunden, was ich mir auch nicht erklären kann, nämlich das hier:
Hallo,
es scheint so, als ob AutoIt versucht trotz der Funktion string die "Eingabe" als Zahl zu interpretieren, und da ist bei max. 19 Stellen "Ende im Gelände". Wenn man ein "&" dazwischen bringt funktioniert es. Aber eine Variable auf zu eine Tour zu bearbeiten wird schwierig weil z.B. stringlen nicht funktioniert.
Gruß
uuchip
Na überlegt doch mal, welche Zahlen maximal in AutoIt angezeigt werden. (Integer)
Wer es ohne Überlegen testen will: Einfach in einer Schleife mit Ziffer 9 beginnen (ConsoleWrite) und die Zahl jeweils um eine 9 ergänzen.
Ich glaube, dann wird klar warum die Stringlänge nicht stimmen kann.
ok, ist klar. Aber meiner einer braucht die große Zahl nicht als Zahl sondern als Zeichenkette und ich dachte string erzwingt eine Umwandlung.
Gruß
uuchip
ich dachte string erzwingt eine Umwandlung.
Ja, aber natürlich von dem (als Exponential-Ausdruck) dargestellten Zahlenwert.
@all
Danke für die Resonanz. ich habe kapiert das
$x=<große Zahl> ungleich $y="<große Zahl>" ist.
Man sollte es als feature betrachen
Grüßle
uuchip
Du hast zwar nicht wirklich geschrieben wofür du das brauchst und wo deine lange Zahl herkommt (eigtl sollte die sowieso als String vorliegen, denn Autoit selbst erzeugt keine integer die das Maximum überschreiten), aber du kannst auch mal nach der bignum.au3 suchen, vielleicht löst die ja dein Problem.
Du hast zwar nicht wirklich geschrieben wofür du das brauchst und wo deine lange Zahl herkommt (eigtl sollte die sowieso als String vorliegen, denn Autoit selbst erzeugt keine integer die das Maximum überschreiten), aber du kannst auch mal nach der bignum.au3 suchen, vielleicht löst die ja dein Problem.
Ich bearbeite z.Z. das Problem 55 von Euler.net. Zum finden der Lösung mit AutoIt (ist gerade fertig, bei Interesse poste ich das mal) ist die bignum UDF sehr hilfreich. Aber auch die funktioniert nur richtig wenn man die ganz großen Zahlen als string eingibt.
z.B. _bignum_add(<große Zahl 1>,<große Zahl 2>) ist ungleich
_bignum_add("<große Zahl 1>","<große Zahl 2>")
Aber auch die funktioniert nur richtig wenn man die ganz großen Zahlen als string eingibt.
Genau deshalb steht das auch so in der Funktionsbeschreibung.