【问题标题】:BigDecimal optimal scale for encodingBigDecimal 编码的最佳比例
【发布时间】:2011-10-21 17:47:06
【问题描述】:

我需要将BigDecimal 紧凑地编码为ByteBuffer 以替换我当前的(垃圾)编码方案(将BigDecimal 编写为UTF-8 编码的String,前缀为表示String 的字节长度)。

鉴于BigDecimal 实际上是一个整数值(在数学意义上)和一个相关的比例,我计划将比例写为单个字节,后跟一个VLQ encoded 整数。这应该足以涵盖预期值的范围(即最大比例 127)。

我的问题:当遇到诸如 10,000,000,000 之类的大值时,显然最好将其编码为值:1,比例为 -10,而不是整数 10,000,000,000,比例为 0(这将占用更多字节)。如何确定给定BigDecimal 的最佳比例? ...换句话说,我如何确定我设置的最小可能比例分配BigDecimal 而无需执行任何舍入?

请不要在您的回答中引用“过早优化”一词 :-)

【问题讨论】:

  • 我不会,因为我称之为过早优化zation :-)
  • 好吧,至少你没有编辑我的问题。

标签: java math bit-manipulation bigdecimal


【解决方案1】:

BigDecimal#stripTrailingZeros 似乎正在这样做。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-26
    • 1970-01-01
    • 1970-01-01
    • 2013-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多