比特币 Java RPC 客户端 - 无法创建原始交易
Bitcoin Java RPC client - cannot create raw transaction
我正在使用 java 比特币 RPC 客户端的实现。
当我用 int 类型调用 createRawTransaction
时,原始事务按预期创建:
BitcoindRpcClient.TxOutput txOut1 = new BitcoindRpcClient.BasicTxOutput(issuerAddress,
new BigDecimal(1));
当我尝试使用双精度值而不是整数时:
BitcoindRpcClient.TxOutput txOut1 = new BitcoindRpcClient.BasicTxOutput(issuerAddress,
new BigDecimal(1.2));
我收到此错误:invalid amount
。
当我使用 bitcoin-cli
尝试时,它按预期工作。
注意:我正在处理本地测试网区块链
输出:
System.out.println(new BigDecimal(1.2));
System.out.println(BigDecimal.valueOf(1.2));
是:
1.1999999999999999555910790149937383830547332763671875
1.2
所以简短的回答是使用首选方式转换双精度值:BigDecimal.valueOf(1.2)
长答案是浮点数很复杂,double
是 1.2
的近似值
我正在使用 java 比特币 RPC 客户端的实现。
当我用 int 类型调用 createRawTransaction
时,原始事务按预期创建:
BitcoindRpcClient.TxOutput txOut1 = new BitcoindRpcClient.BasicTxOutput(issuerAddress,
new BigDecimal(1));
当我尝试使用双精度值而不是整数时:
BitcoindRpcClient.TxOutput txOut1 = new BitcoindRpcClient.BasicTxOutput(issuerAddress,
new BigDecimal(1.2));
我收到此错误:invalid amount
。
当我使用 bitcoin-cli
尝试时,它按预期工作。
注意:我正在处理本地测试网区块链
输出:
System.out.println(new BigDecimal(1.2));
System.out.println(BigDecimal.valueOf(1.2));
是:
1.1999999999999999555910790149937383830547332763671875
1.2
所以简短的回答是使用首选方式转换双精度值:BigDecimal.valueOf(1.2)
长答案是浮点数很复杂,double
是 1.2