Cum se rotunjește 0.0 la 0.00 în java? (Programare, Java, Zecimal)

Anto Robinson a intrebat.
a intrebat.

Am folosit următoarea funcție

float val=0.0;
DecimalFormat toTheFormat = new DecimalFormat("#.##");
float value=Float.valueOf(toTheFormat.format(val));

Dar nu este potrivit pentru toate condițiile cum ar fi „0.0” încă „0.0”. Nu se scalează până la „0.00”.

4 răspunsuri
Reimeus

Utilizați

DecimalFormat toTheFormat = new DecimalFormat("0.00");

pentru a rotunji la 2 cifre semnificative

Comentarii

  • floats nu poate fi completat corect cu zerouri – trebuie să folosiți ieșirea de la toTheFormat.format(val) în sine, mai degrabă decât value –  > Por Reimeus.
  • Ieșirea din această metodă este în String. Ce se întâmplă dacă am nevoie de ea în float? –  > Por Anto Robinson.
  • Atunci nu vei putea să pui la dreapta partea de fracție a frazei, deoarece este un float – doar a String poate funcționa –  > Por Reimeus.
sunysen

încercați

DecimalFormat toTheFormat = new DecimalFormat("#.00");

Comentarii

  • Ieșirea din această metodă este în String. Ce se întâmplă dacă am nevoie de ea în float? –  > Por Anto Robinson.
  • Puteți face un rezultat de conversie –  > Por sunysen.
Ingo

Abordarea dvs. este greșită. Rotunjire este o operație numerică care ia un număr x și returnează un alt număr y care se apropie de x și care are proprietatea că expansiunea zecimală are doar atâtea cifre. Exemplu:

0.123 --> 0.12

Dar 0,0 și 0,00 sunt exact aceleași numere, nu are rost să rotunjim. Ceea ce doriți (poate) este să formatați un număr într-un anumit mod la ieșire. Pentru aceasta, consultați celelalte răspunsuri.

Anto Robinson

Dacă folosesc DecimalFormat toTheFormat = new DecimalFormat("#.00");

obțin o ieșire ca .00 nu 0.00

deci acesta ar fi codul corect

DecimalFormat toTheFormat = new DecimalFormat("#0.00");