Javaは小数点、小数点以下2桁に丸められました...

Javaは1進法に丸め:

import java.math.BigDecimal;
 
public class Test {
    public static void main(String[] args) {
        double data = 3.02;
        //利用字符串格式化的方式实现四舍五入,保留1位小数
        String result1 = String.format("%.1f",data);
        //1代表小数点后面的位数, 不足补0。f代表数据是浮点类型。保留2位小数就是“%.2f”。
        System.out.println(result1);//输出3.0
         
        //利用BigDecimal来实现四舍五入.保留一位小数
        double result2 = new BigDecimal(data).setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();
        //1代表保留1位小数,保留两位小数就是2
        //BigDecimal.ROUND_HALF_UP 代表使用四舍五入的方式
        System.out.println(result2);//输出3.0
    }
}

間で

; - ROUND_HALF_UP ::アップ状況は> 1.5 2例、約0.5に遭遇
例えば、約0.5ダウンの状況が発生した:: 1.5 - >; 1 ROUND_HALF_DOWN

新しい新しい= BigDecimalを(1.5)のBigDecimal;
                のSystem.out.println( "ダウン=" + a.setScale(0、BigDecimal.ROUND_HALF_DOWN)+ "/ TUP =" + a.setScale(0、BigDecimal.ROUND_HALF_UP));
結果:= 1、最大= 2ダウン
を理解するには、この例を見て!

その他のパラメータ

ROUND_CEILING     
  のBigDecimalが正の場合、ROUND_UPの操作を行い、それが負の場合、ROUND_DOWNの操作を行います。     
  ROUND_DOWNは     
  (すなわち、切り捨て)で前の数字で分数の増加を決してあきらめません。     
  ROUND_FLOOR     
  のBigDecimalの場合はROUND_UPとして、ポジティブであり、それはROUND_DOWNとして、負の場合。     
  ROUND_HALF_DOWN     
  廃棄された画分はROUND_UPのために> 0.5であれば、そうでない場合、ROUND_DOWNのために。     
  ROUND_HALF_EVENは     
  左に廃棄桁が次にROUND_HALF_UPなどのために、奇数である場合、それはROUND_HALF_DOWN、次いで、偶数である場合。     
  ROUND_HALF_UPとして     
  。そうでない場合、ROUND_DOWNため、廃棄画分> = 5の場合、ROUND_UPため。     
  ROUND_UNNECESSARY     
  「擬似丸めモード」したがって、何丸め正確でないために必要な操作を指定実際にあります。     
  ROUND_UP     
  番号を追加する前に、常にゼロで廃棄された画分(すなわち、切り捨て)。     

おすすめ

転載: blog.csdn.net/linjpg/article/details/88974160