Wie konvertiert man eine große Zahl in eine normale Zahl?

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 ] }

Antworten (2)

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.fromWeianstelle von web3.fromWei.

Danke Paul. Ich habe toNumber() vergessen. Danke, dass du mich daran erinnert hast.

Nicht jeder BigNumberkann Numbermit einem gleichwertigen Wert in ein Javascript umgewandelt werden .

Wenn das der Fall gewesen wäre, hätten wir überhaupt keine BigNumberKlasse 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 BigNumberFunktionen verwenden .

Technisch gesehen sollte es also nicht erforderlich sein, Ihre BigNumberin ein Javascript umzuwandeln Number.