Ich bin neu beim Testen und möchte wissen, wie man eine große Zahl in eine reelle Zahl umwandelt.
Ich verwende bignumber im folgenden Befehl:
console.log(await this.crowdsale.rate());
Das wird im Terminal ausgegeben:
BigNumber { s: 1, e: 2, c: [ 500 ] }
Es kommt darauf an, was Sie unter reeller Zahl verstehen. Sie können sich hier die in Ethereum verwendeten Unterteilungen ansehen.
Für we:
let bigNo = await this.crowdsale.rate();
console.log(bigNo.toNumber());
Fügen Sie für Äther Folgendes hinzu:
console.log(web3.fromWei(bigNo.toNumber()));
Wenn Sie Version ^1.0.0 von web3 verwenden, verwenden Sie web3.utils.fromWei
anstelle von web3.fromWei
.
Nicht jeder BigNumber
kann Number
mit einem gleichwertigen Wert in ein Javascript umgewandelt werden .
Wenn das der Fall gewesen wäre, hätten wir überhaupt keine BigNumber
Klasse gebraucht.
In Bezug auf Ihre eigentliche Frage - Sie haben nicht wirklich erklärt, warum Sie diese Konvertierung durchführen müssen.
Ihre Frage impliziert, dass Ihnen der Ausdruck nicht gefällt. In diesem Fall können Sie Ihren Code wie folgt korrigieren:
let rate = await this.crowdsale.rate();
console.log(rate.toFixed());
Wenn Sie daran interessiert sind, zusätzliche Berechnungen durchzuführen, können Sie einfach BigNumber
Funktionen verwenden .
Technisch gesehen sollte es also nicht erforderlich sein, Ihre BigNumber
in ein Javascript umzuwandeln Number
.
BENUTZERBILD