使用BigDecimals计算百分比

时间:2018-09-25 05:47:33

标签: java bigdecimal

我想计算以BigDecimal格式收到的数字的:

var str = "This is a test"
var result = [String]()
for (index,element) in str.enumerated() {
    var val:String =  String(element).lowercased()
    if index % 2 == 0 {
        val = String(element).uppercased()
    }
    result.append(val)
}

print(result.joined())

但是我得到了0!

1 个答案:

答案 0 :(得分:1)

将除法后的结果转换为double。整数除法按预期返回零。这应该起作用。

BigDecimal percentageAmount = number1.multiply(new BigDecimal((double)percentage/100));

或者,将100设为100.0。

BigDecimal percentageAmount = number1.multiply(new BigDecimal(percentage/100.0));

如果您使用的数字很小,这些解决方案将起作用。但是,当数量很大时,这些解决方案将无法给出准确的结果。这是避免精度错误的最佳方法

BigDecimal percentageAmount = number1.multiply(BigDecimal.valueOf((double)percentage/100));