Java Long Number Readable Format humanReadableInt(long number)

Here you can find the source of humanReadableInt(long number)

Description

Given an integer, return a string that is in an approximate, but human readable format.

License

Apache License

Parameter

Parameter Description
number the number to format

Return

a human readable form of the integer

Declaration

public static String humanReadableInt(long number) 

Method Source Code

//package com.java2s;
/*//from   w  ww  . j  a  va  2s.c o  m
 *  * Copyright 2016 Skymind, Inc.
 *  *
 *  *    Licensed under the Apache License, Version 2.0 (the "License");
 *  *    you may not use this file except in compliance with the License.
 *  *    You may obtain a copy of the License at
 *  *
 *  *        http://www.apache.org/licenses/LICENSE-2.0
 *  *
 *  *    Unless required by applicable law or agreed to in writing, software
 *  *    distributed under the License is distributed on an "AS IS" BASIS,
 *  *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  *    See the License for the specific language governing permissions and
 *  *    limitations under the License.
 */

import java.text.DecimalFormat;

public class Main {
    private static DecimalFormat oneDecimal = new DecimalFormat("0.0");

    /**
     * Given an integer, return a string that is in an approximate, but human
     * readable format.
     * It uses the bases 'k', 'm', and 'g' for 1024, 1024**2, and 1024**3.
     * @param number the number to format
     * @return a human readable form of the integer
     */
    public static String humanReadableInt(long number) {
        long absNumber = Math.abs(number);
        double result = number;
        String suffix = "";
        if (absNumber < 1024) {
            // do nothing
        } else if (absNumber < 1024 * 1024) {
            result = number / 1024.0;
            suffix = "k";
        } else if (absNumber < 1024 * 1024 * 1024) {
            result = number / (1024.0 * 1024);
            suffix = "m";
        } else {
            result = number / (1024.0 * 1024 * 1024);
            suffix = "g";
        }
        return oneDecimal.format(result) + suffix;
    }
}

Related

  1. humanReadableBytes(long bytes)
  2. humanReadableBytes(long bytes)
  3. humanReadableDateDiff(long start, long end)
  4. humanReadableDuration(long length)
  5. humanReadableDuration(long ms)
  6. humanReadableNumber(long total)
  7. humanReadableSize(long byteCount)
  8. humanReadableSize(long bytes)
  9. humanReadableTime(final long duration)