题解 | 四舍五入 不止四种解法

四舍五入

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);
    }
}

全部评论

相关推荐

07-02 22:46
门头沟学院 Java
码农索隆:hr:“管你投没投,先挂了再说”
点赞 评论 收藏
分享
05-29 09:02
门头沟学院 Java
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-10 11:31
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务