【问题标题】:How to truncate the number of digits after the decimal [duplicate]如何截断小数点后的位数[重复]
【发布时间】:2019-04-23 17:58:00
【问题描述】:

假设,我取一个无理数 q 和一个整数 n,我想在小数点后保留 n 位后打印 q 的截断值。

示例: 输入:q = 3.14159625,n = 3 输出:3.141

【问题讨论】:

    标签: java


    【解决方案1】:

    假设您想要正确的舍入,您可以使用 System.out.printf 来做到这一点

    String format = "%." + n + "f";
    System.out.printf(format, q);
    
    int n = 3;
    float q = 3.141592625f;
    
    String format = "%." + n + "f";
    System.out.printf(format, q);
    

    输出

    3.142
    

    如果你真的想截断你可以转换成字符串,那么

    int n = 3;
    float q = 3.141592625f;
    String str = Float.toString(q);
    int index = str.indexOf('.');
    System.out.println(str.substring(0, index + n + 1));
    

    输出

    3.141
    

    但您需要检查有效索引和字符串长度

    【讨论】:

    • 我希望输出是 3.141,而不是 3.142
    • 所以看看我给你的第二个代码块,也可以根据你可以使用的重复链接BigDecimal
    • 是的,这就是我的回答,谢谢。目前,由于声誉较低,我无法投票,一旦我获得所需的声誉,我就会投票给你的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-02
    相关资源
    最近更新 更多