【发布时间】:2010-10-13 02:43:53
【问题描述】:
我有一个 BigDecimal 计算结果,我需要将其四舍五入到最接近的指定间隔(在本例中是金融市场刻度大小)。
例如价格 [Tick Size] -> 四舍五入的价格
100.1 [0.25] -> 100
100.2 [0.25] -> 100.25
100.1 [0.125] -> 100.125
100.2 [0.125] -> 100.25
谢谢。
更新:schnaader 的解决方案,翻译成 Java/BigDecimal 术语:
price = price.divide(tick).setScale(0, RoundingMode.HALF_UP).multiply(tick)
【问题讨论】:
-
为了便于搜索,此技术可用于将百分比值四舍五入为基点的任意分数。
-
divide()函数也将比例尺作为参数:divide(tick, 0, RoundingMode.HALF_UP)
标签: java rounding bigdecimal intervals