[英]division of bigdecimal by integer
我想用一個integer來分割一個bigdecimal值。我已經舍入了bigdecimal值(如果它是133.333那么舍入值是133)。以下是我的代碼片段。
v1 = v1.setScale(0, RoundingMode.HALF_UP);
int temp = BigDecimal.valueOf(v1.longValue()).divide(constant1);
常量的值是12.它顯示一條錯誤消息
BigDecimal類型中的方法除(BigDecimal)不適用於參數(int)
任何人都可以幫我做分工嗎?
更改
.divide(constant1);
至
.divide(new BigDecimal(constant1));
順便問一下,你為什么不這樣做呢
int temp = (int) (Math.round(v1.doubleValue()) / constant1);
??
您應該編寫如下代碼:
int temp = BigDecimal.valueOf(v1.longValue())
.divide(BigDecimal.valueOf(constant1)).intValue();
關於BigDecimal和BigInteger的事情是它們主要使用這些類的實例而不是基本類型。 操作結果也是這些類的新實例。
另外一句話:我建議使用valueOf
靜態方法而不是構造函數,因為這樣做可能會避免創建新對象。 使用構造函數可以顯式創建新對象,在這種情況下根本不需要。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.