将数字转换为java或jsp中的百万和十亿格式

San*_*osh 2 java jsp jstl

有没有一种方法可以将浮点值转换为java或jsp标签中的百万和十亿格式。

例如:值145,835,504应该表示为145.8M

可以使用jstl中的任何格式标记来完成...?

Gil*_*anc 5

我不了解JSP,但是在Java中,您可以使用几个简单,易于编码的方法来完成此任务。

public String truncateNumber(float floatNumber) {
    long million = 1000000L;
    long billion = 1000000000L;
    long trillion = 1000000000000L;
    long number = Math.round(floatNumber);
    if ((number >= million) && (number < billion)) {
        float fraction = calculateFraction(number, million);
        return Float.toString(fraction) + "M";
    } else if ((number >= billion) && (number < trillion)) {
        float fraction = calculateFraction(number, billion);
        return Float.toString(fraction) + "B";
    }
    return Long.toString(number);
}

public float calculateFraction(long number, long divisor) {
    long truncate = (number * 10L + (divisor / 2L)) / divisor;
    float fraction = (float) truncate * 0.10F;
    return fraction;
}
Run Code Online (Sandbox Code Playgroud)