💸
【Ethereum】なぜETH単位とWei単位を変換するのか
概要
Dapp開発では単位の変換がちょいちょい発生します。
「なぜ単位の変換が発生するのか」がサクっと理解できなかったため、
備忘録としてまとめます。
ETHとWeiの基本
ETH単位
Ethereumの基本単位。
一般的な取引で使われる。
1ETH、0.1ETH、0.01ETHなどと記す。
Wei単位
ETHの最小単位。
スマートコントラクト内で使用される。
1ETHは、1,000,000,000,000,000,000Wei。
なぜ2つの単位を変換するのか
・ETHからWeiに変換する理由
→精度を保つため
ETHは小数点以下の桁数を持つことができるため、非常に細かな金額まで表現できる。
しかし、コンピュータの計算では、浮動小数点数の小数点以下の桁数を扱うことは、厳密な計算が困難な場合がある(浮動小数点数は有限のビット数で表現されるため)。
Weiであれば、整数の単位であるため計算が容易であり、正確な結果を得ることができる。
だから、スマートコントラクト内部では、Wei単位を使用して計算や金額の表現を行う。
・WeiからETHに変換する理由
→直感的に理解するため
ETH単位は一般的な取引に使用されるため、人間が理解しやすい。
また、ETH単位を使用することで、金額の相対的な大きさや価値を把握しやすい。
まとめ
人間のための単位 が ETH。
スマートコントラクトのための単位 が Wei。
日本円で例えると、
〇〇円 が 〇〇ETH。
〇〇銭 が 〇〇Wei。
だから、フロントエンドでは人間向けにETHで表示するが、
スマートコントラクトに数値を送る際にはweiに変換する。
Discussion