簡體   English   中英

按整數划分bigdecimal

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM