Discuss Scratch

Cooler_Tim
Scratcher
10 posts

Hohe Zahlen

Ich programmiere gerade ein Spiel wo man hohe Zahlenwerte kopieren muss z.b. zum Speichern. Scratch wandelt die Zahl aber automatisch in beispielsweise “45e+7300” um. Kann man das umgehen?
fritz15
Scratcher
34 posts

Hohe Zahlen

Okay. 45e+7300 ist echt wirklich groß. Das passt auf keinen Bildschirm. Und Scratch sagt bei mir da schon Infinity. Aber bei nicht gaaaaaaaanz so großen Zahlen, wie 3*10^100 verwendet Scratch eben diese Schreibweise (3e+100). Wenn du sie wirklich ausschreiben willst, kannst du ja einen Algorithmus programmiert, der die Zahl bei dem e+ zerteilt, also in 3 und 100, dann die ersten Stellen durch den Faktor ersetzt und das als String ausgibt.
setze [Große Zahl v] auf (Faktor 1)
wiederhole (hoch) mal
setze [Große Zahl v] auf (verbinde (Große Zahl) [0])
end
Dabei ist (nach dem Beispiel) Faktor 1 = 3 und hoch = 100. Wenn Faktor 1 jetzt aber eine Kommazahl ist, musst du ja ersteinmal die Zahl in eine ganze Zahl umwandeln, also 1,234567 in 1234567, multipliziert mit 10^6, weil es 6 Nachkommastellen hat. Nachkommastellen kannst du so ermitteln:
(((Länge von (Zahl)) - ([abrunden v] von ([log v] von (Zahl)))) - (2)
die 6 von 10^6 musst du dann von der Variable hoch abziehen.

fritz15


Mein Projekt: Intellicat. Sie beantwortet dir alle Fragen.
Mit komplexer KI-Technologie. Jetzt entdecken!

Cooler_Tim
Scratcher
10 posts

Hohe Zahlen


fritz15 wrote:

Okay. 45e+7300 ist echt wirklich groß. Das passt auf keinen Bildschirm. Und Scratch sagt bei mir da schon Infinity. Aber bei nicht gaaaaaaaanz so großen Zahlen, wie 3*10^100 verwendet Scratch eben diese Schreibweise (3e+100). Wenn du sie wirklich ausschreiben willst, kannst du ja einen Algorithmus programmiert, der die Zahl bei dem e+ zerteilt, also in 3 und 100, dann die ersten Stellen durch den Faktor ersetzt und das als String ausgibt.
setze [Große Zahl v] auf (Faktor 1)
wiederhole (hoch) mal
setze [Große Zahl v] auf (verbinde (Große Zahl) [0])
end
Dabei ist (nach dem Beispiel) Faktor 1 = 3 und hoch = 100. Wenn Faktor 1 jetzt aber eine Kommazahl ist, musst du ja ersteinmal die Zahl in eine ganze Zahl umwandeln, also 1,234567 in 1234567, multipliziert mit 10^6, weil es 6 Nachkommastellen hat. Nachkommastellen kannst du so ermitteln:
(((Länge von (Zahl)) - ([abrunden v] von ([log v] von (Zahl)))) - (2)
die 6 von 10^6 musst du dann von der Variable hoch abziehen.

Danke Die Zahl war auch nur ein (schlecht gewähltes) Beispiel.

Last edited by Cooler_Tim (May 10, 2021 17:06:30)

Powered by DjangoBB

Standard | Mobile