【问题标题】:Amount instance in CordaCorda 中的金额实例
【发布时间】:2021-09-08 22:27:15
【问题描述】:

我正在尝试在 Corda 中创建“金额”的实例。我将一个 long 值和一个 USD 实例传递给它。

val amount = Amount(value, Currency.getInstance("USD"))

其中值为 10。

我希望输出为 10 美元,但它以 0.10 美元返回,这是预期的。

我也知道美元在小数点右边有两位数。
但是有没有办法达到我想要的解决方案?

注意:我期望的类型是 Amount

【问题讨论】:

    标签: java kotlin corda


    【解决方案1】:
    Amount<Currency> a = new Amount<>(10, new BigDecimal("1"), Currency.getInstance("USD"));
    

    金额(数量:Long,displayTokenSize:BigDecimal,token:T)

    Amount 表示某个代币(货币、资产、 等),以最小的可表示单位的数量来衡量。这 每个单独的代币代表的名义数量等于 显示令牌大小。 displayTokenSize 的 scale 属性应该 正确反映显示的小数位,并用于 BigDecimal 中指示性/显示金额的四舍五入转换 to Amount 通过 Amount.fromDecimal 方法发生。

    Amount.fromDecimal( new BigDecimal("10"), Currency.getInstance("USD"))
    

    fun fromDecimal(displayQuantity: BigDecimal, token: T, 舍入:RoundingMode = RoundingMode.FLOOR):

    数量建立一个 十进制表示的金额。例如,输入为 “12.34 GBP”,返回一个数量为“1234”代币的金额。这 函数 getDisplayTokenSize 用于确定转换 缩放,例如债券的名义金额可能为 100, 以 0.01 美分为单位的货币。

    https://api-prod.corda.net/api/corda-os/4.8/html/api/kotlin/corda/net.corda.core.contracts/-amount/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-09
      • 2020-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-25
      • 2022-06-13
      相关资源
      最近更新 更多