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

时间:2013-05-17 08:10:10

标签: java jsp jstl

有没有办法在java或jsp标签中将浮点值转换为百万和十亿格式。

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

可以使用jstl中的任何格式化标签来完成吗?

3 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:0)

没有像这样转换的内置功能。<​​/ p>

虽然这是一个转换成单词的例子。

Example here

答案 2 :(得分:-1)

您可以像这样将整数转换为一百万。值是整数

DecimalFormat df = new DecimalFormat("0.00M");
String formatted = df.format(value / 1000000.0).replace(",", ".")