Json-Rpc

如何從 JSON RPC 獲取 integer satoshi 值?

  • March 28, 2021

似乎 RPC 要求獲取有關塊的 JSON 資訊返回比特幣中的“值”欄位,而不是 satoshis。

這意味著在某處存在從 integer 到 float 的轉換,這令人不安,因為它可能會引入舍入錯誤(請參閱下面的上下文)。

有沒有辦法直接在 JSON中獲取整數satoshi 數量?

否則,將浮點值乘以 10^8 並取整數部分是否完全安全?

有沒有更好的方法可以直接獲取整數 satoshi 值?

謝謝!


讓我給出一些上下文。

一個典型的問題是,例如,大多數係統沒有浮點值(精確)0.1;它們通常有(微小的)差異。

在我的機器上,我獲得:

python3.6 -c 'print("%.20f"%0.1)'
0.10000000000000000555

python3.6 -c 'print(0.1+0.1+0.1==0.3)'
False

這通常是安全的,但在我的上下文中,這會引發混亂的問題,因此只處理整數很有吸引力。

bitcoind 在內部將所有金額視為整數,並且僅將值顯示為 RPC 的小數。顯示格式不會引入任何浮點精度問題,因為它仍然只是使用一些字元串格式進行整數轉換以使其看起來像小數。因此,乘以100000000得到整數數量的 satoshis 是完全安全的。

引用自:https://bitcoin.stackexchange.com/questions/104943