Ahoi!
Ich lese aus einem Smart Contract (auf Arbitrum) einen Wert aus. In der Doku für Developer heißt es, dabei handele es sich um einen uint128-Wert („Expressed in ray“). Ich möchte diesen umrechnen in einen Dezimalwert mit zwei Nachkommastellen. Stehe gerade etwas auf dem Schlauch. Wie mache ich das?
Lieben Gruß und Dank vorab
Kurt
uint128 umrechnen in Decimal
-
- User
- Beiträge: 7
- Registriert: Montag 21. August 2023, 13:02
-
- User
- Beiträge: 7
- Registriert: Montag 21. August 2023, 13:02
Zurück kriege ich den Wert 33555008. Draus werden müsste eine Zahl mit einer Stelle vor dem Komma.
Sollte es helfen: Ich lese aus dem Pool Smart Contract von Aave den Wert für currentLiquidityRate aus und bekomme obigen Wert.
https://docs.aave.com/developers/core-contracts/pool
-
- User
- Beiträge: 7
- Registriert: Montag 21. August 2023, 13:02
Sorry, verguckt, das ist der Wert:
26307950997624296042583108
Und irgendwo habe ich was gelesen von Ray = 27 Stellen. Das passt dann aber auch nicht. Hmmm …
26307950997624296042583108
Und irgendwo habe ich was gelesen von Ray = 27 Stellen. Das passt dann aber auch nicht. Hmmm …
Todsicher. Das haut so hin:
Code: Alles auswählen
>>> v = 1234567
>>> v / 100
12345.67
>>> import decimal as d
>>> d.Decimal(v) / d.Decimal(100)
Decimal('12345.67')
-
- User
- Beiträge: 7
- Registriert: Montag 21. August 2023, 13:02
Probiere es später aus und melde mich nochmal. Danke!
-
- User
- Beiträge: 7
- Registriert: Montag 21. August 2023, 13:02
Hallo,
also ich kriege näherungsweise die richtigen Werte raus, wenn ich die vom Smart Contract zurückgelieferte Zahl durch 10000000000000000000000000 teile. Die Ungenauigkeit könnte damit zusammenhängen, dass die Aave-Website die Rates nicht so oft aktualisiert. Sicher bin ich mir nicht, aber ich habe mehrere Assets abgeglichen, und jetzt scheint es einigermaßen zu passen. Nun würde ich nur zu gern verstehen, warum ...
Lieben Gruß
Kurt
also ich kriege näherungsweise die richtigen Werte raus, wenn ich die vom Smart Contract zurückgelieferte Zahl durch 10000000000000000000000000 teile. Die Ungenauigkeit könnte damit zusammenhängen, dass die Aave-Website die Rates nicht so oft aktualisiert. Sicher bin ich mir nicht, aber ich habe mehrere Assets abgeglichen, und jetzt scheint es einigermaßen zu passen. Nun würde ich nur zu gern verstehen, warum ...
Lieben Gruß
Kurt
- __blackjack__
- User
- Beiträge: 13218
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Warum nicht? Nach einer kurzen Recherche ist ein ”ray” halt so definiert.
“There will always be things we wish to say in our programs that in all known languages can only be said poorly.” — Alan J. Perlis
-
- User
- Beiträge: 7
- Registriert: Montag 21. August 2023, 13:02
Dann habe ich falsch gesucht. Aber gut, damit wäre das Problem dann erstmal gelöst.__blackjack__ hat geschrieben: ↑Montag 21. August 2023, 23:39 Warum nicht? Nach einer kurzen Recherche ist ein ”ray” halt so definiert.