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

问题描述

我正在使用Bitcoin 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进行尝试时,它会按预期工作。

注意:我正在研究本地测试网区块链

解决方法

输出:

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的近似值

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...