格式化 android Java 中的浮点数

Formatting Floating point numbers in android Java

我想按照以下模式将浮点数格式化为字符串

X.XX -> 当小数点前只有 1 位时 2 位小数精度

XX.XX -> 当小数点前有2位则小数点后2位精度

XXX.X -> 当小数点前有 3 位时,小数点精度为 1 位

XXXX.. -> 当小数点前有4位或更多位时,不显示小数点

如何在 Java 中执行此操作?

使用 Decimal Format 的简单代码可能会有帮助

float f=  24.56f;//Replace with your float number
    int i = (int)f;
    if(i<100)
        System.out.println(new DecimalFormat("#.##").format(f));//This functions will round the last bits also i.e. greater then 4 will increase the number preceding also 
    else if( i < 1000)
        System.out.println(new DecimalFormat("#.#").format(f));
    else 
        System.out.println(new DecimalFormat("#").format(f));

假设你有 float f number

float f;
int a = (int) f;
String res = null;
if (a<100) res = String.format("%.2f");
else if (a<1000) res = String.format("%.1f");
else res = String.valueOf(a);