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
番号を追加する前に、常にゼロで廃棄された画分(すなわち、切り捨て)。