From this Standard dictionary numbers, I need a fastest way to convert some number below :
1000000 = 1 Million
1435234 = 1.43 Million
350000000 = 350 Million
1000000000 = 1 Billion
1765000000 = 1.76 Billion
1000000000000 = 1 Trillion
1345342345000 = 1.34 Trillion
1000000000000000 = 1 Quadrillion
100000000000000000 = 100 Quadrillion
and further.
I have tried like this below:
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;
}
but I think my solution is not quite true. So, what is a fastest way to do that in Java? Many Thanks.