比特币Java RPC客户端-无法创建原始交易



我使用的是比特币RPC客户端的java实现
当我使用int类型调用createRawTransaction时,将按预期创建原始事务:

BitcoindRpcClient.TxOutput txOut1 = new BitcoindRpcClient.BasicTxOutput(issuerAddress,
new BigDecimal(1));

当我尝试使用双值而不是int时:

BitcoindRpcClient.TxOutput txOut1 = new BitcoindRpcClient.BasicTxOutput(issuerAddress,
new BigDecimal(1.2));

我收到这个错误:invalid amount

当我使用bitcoin-cli进行尝试时,它会按预期工作。

注意:I;我在本地测试网区块链上工作

的输出

System.out.println(new BigDecimal(1.2));
System.out.println(BigDecimal.valueOf(1.2));

Is:

1.1999999999999999555910790149937383830547332763671875
1.2

因此,简单的答案是使用首选的方式来转换双重:BigDecimal.valueOf(1.2)

长期的答案是浮点数很复杂,double是1.2 的近似值

最新更新