java equivalent to printf("%*.*f")

vedavis picture vedavis · Sep 11, 2012 · Viewed 28.1k times · Source

In C, the printf() statement allows the precision lengths to be supplied in the parameter list.

printf("%*.*f", 7, 3, floatValue);

where the asterisks are replaced with first and second values, respectively.

I am looking for an equivalent in Android/Java; String.format() throws an exception.

EDIT: Thanks, @Tenner; it indeed works.

Answer

James Cronen picture James Cronen · Sep 11, 2012

I use

int places = 7;
int decimals = 3;

String.format("%" + places + "." + decimals + "f", floatValue);

A little ugly (and string concatenation makes it not perform well), but it works.