如何在java中获取没有舍入数字的浮点数

时间:2018-03-09 12:06:19

标签: java

我有这个浮动98.01645,我用这个函数得到98.02:

    String lastCredit = String.format("%.2f", AppSingleton.getInstance().credit);

我想要的是获得98.01(只有两位小数或不是四舍五入的数字)。我正在尝试,但我无法做到这一点。

提前致谢!

4 个答案:

答案 0 :(得分:3)

手动完成:

String lastCredit = String.format("%.2f", java.lang.Math.floor(100.0*AppSingleton.getInstance().credit)*0.01);

乘以100.0将小数点向右移动两次,然后向下舍入,然后乘以0.01将小数点二向左移动。

答案 1 :(得分:1)

你可以试试这个

    String lastCredit = String.format("%.2f",Math.floor((98.01645 * 100)) / 100);
    System.out.println(lastCredit);

您基本上将该值乘以100,因为您需要在小数点后面加上2个数字并向下舍入该值。得到结果后,再将它除以100。

答案 2 :(得分:0)

使用以下代码代替String lastCredit = String.format("%.2f", AppSingleton.getInstance().credit);

    DecimalFormat decimalFormat = new DecimalFormat("#.##");
    decimalFormat.setRoundingMode(RoundingMode.FLOOR);
    String lastCredit = decimalFormat.format(f);

答案 3 :(得分:0)

我不会称之为优雅,但您可以使用String.format获取3个小数位并使用子字符串删除最后一个:

String lastCredit = String.format("%.3f", AppSingleton.getInstance().credit);
lastCredit = lastCredit.substring(0, lastCredit.length() - 1);