题解 | 四舍五入 不止四种解法
四舍五入
https://www.nowcoder.com/practice/cae89de6292b4084acb93659353260e0
import java.math.BigDecimal; import java.math.RoundingMode; import java.text.DecimalFormat; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); double d= scanner.nextDouble(); //write your code here...... //方法1 Math.round()方法进行四舍五入 // int i = (int)Math.round(d); //方法2 三元运算符 // int i = (int)(d>0?d+0.5:d-0.5); //方法3 BigDecimal的setScale()方法 设置数值的小数数位; // int i = new BigDecimal(d).setScale(0,RoundingMode.HALF_UP).intValue(); //方法4 DecimalFormat 银行家舍入规则 DecimalFormat df = new DecimalFormat("#");//创建格式化器 String formated = df.format(d); int i = Integer.parseInt(formated); /* 创建格式化器,模式“#”为可选模式 该模式会自动对小数进行四舍五入; 创建字符串类型的字段formated 检查小数部分,如果大于或等于0.5就向整数部分进1 执行默认的RoundingMode.HALF_EVEN 把字符串转为int类型 不理解可选模式可参考下面 new DecimalFormat("#.##") // 保留2位小数(四舍五入) new DecimalFormat("0.00") // 固定2位小数(补零) */ System.out.println(i); } }