小编典典

Java浮点数123.129456至123.12不取整

java

如何在不使用舍入的情况下将Java中的 float 原语减少到 两位小数

123.99999 to 123.99
-8.022222 to -8.02

仅舍入小数点后两位不应该四舍五入。

第二点是如何 验证 或计算点后的小数位数?:

123.99 will give true or 2
123.999 will give false or 3

更新

数字是字符串输入,因此我认为我会按照建议进行操作;并且我将只有int try / catch块用于任何异常。欢迎提供任何建议以更智能的方式进行这项工作:

public static float onlyTwoDecimalPlaces(String number) {
    StringBuilder sbFloat = new StringBuilder(number);
    int start = sbFloat.indexOf(".");
    if (start < 0) {
        return new Float(sbFloat.toString());
    }
    int end = start+3;
    if((end)>(sbFloat.length()-1)) end = sbFloat.length();

    String twoPlaces = sbFloat.substring(start, end);
    sbFloat.replace(start, sbFloat.length(), twoPlaces);
    return new Float(sbFloat.toString());
}

阅读 221

收藏
2020-11-01

共1个答案

小编典典

首先,不能保证仅因为浮点数可以a.bcde精确表示,所以可以保证它可以精确表示a.bc

因此,如果您只需要打印部分,那么如何进行一些字符串操作呢?使用找到小数点,indexOf并使用提取两个小数部分substring

2020-11-01