Zaokrouhlení dvojciferného čísla na 2 desetinná místa

Pokud je hodnota 200.3456, měla by být zformátována na 200.34. Pokud je to 200, pak by to mělo být 200.00.

Pokud chcete vypsat pouze double se dvěma číslicemi za desetinnou čárkou, použijte něco takového:

double value = 200.3456;
System.out.printf("Value: %.2f", value);

Pokud chcete výsledek místo vypsání na konzoli zobrazit jako řetězec, použijte Řetězec.format() se stejnými argumenty:

String result = String.format("%.2f", value);

Nebo použijte třídu DecimalFormat:

DecimalFormat df = new DecimalFormat("####0.00");
System.out.println("Value: " + df.format(value));
Komentáře (6)

Nejjednodušší by bylo provést tento trik;

double val = ....;
val = val*100;
val = Math.round(val);
val = val /100;

pokud val začíná na 200,3456, pak se dostane na 20034,56, pak se zaokrouhlí na 20035 a pak ho vydělíme a dostaneme 200,34.

pokud bychom chtěli zaokrouhlovat vždy dolů, mohli bychom vždy zkrátit odlitím na int:

double val = ....;
val = val*100;
val = (double)((int) val);
val = val /100;

Tato technika bude fungovat ve většině případů, protože u velmi velkých dvojčat (kladných nebo záporných) může dojít k přetečení. ale pokud víte, že vaše hodnoty budou ve vhodném rozsahu, pak by vám to mělo vyhovovat.

Komentáře (3)

Zaokrouhlení dvojnásobku obvykle není to, co člověk chce. Místo toho použijte String.format() pro vyjádření v požadovaném formátu.

Komentáře (3)