Math round java (Programare, Java, Math, Rotunjire)

Alex a intrebat.

Am primit un proiect de convertit din cm în inch.Am făcut-o:cum pot rotunji numărul meu cu Math.round?

import java.util.Scanner;  

public class Centimer_Inch
{

public static void main (String[] args)
{
        // 2.54cm is 1 inch
       Scanner cm = new Scanner(System.in); //Get INPUT from pc-Keyboard
       System.out.println("Enter the CM:"); // Write input
       //double
       double centimeters = cm.nextDouble();
       double inches = centimeters/2.54;
       System.out.println(inches + " Inch Is " + centimeters + " centimeters");


    }
}

Comentarii

  • Câte cifre zecimale vrei să păstrezi? –  > Por enrico.bacis.
  • Cu Math.round, , dar asta o știi deja. Deci care este problema mai exact? –  > Por harold.
  • Cred că sunteți în căutarea formatelor String. (docs.oracle.com/javase/1.5.0/docs/api/java/lang/…, , java.lang.Object…)) – user180100
3 răspunsuri
arshajii

Ați putea face ceva de genul acesta:

Double.valueOf(new DecimalFormat("#.##").format(
                                           centimeters)));  // 2 decimal-places

Dacă ai vrea cu adevărat Math.round:

(double)Math.round(centimeters * 100) / 100  // 2 decimal-places

Poți avea 3 zecimale folosind 1000, , 4 folosind 10000 etc. Mie personal îmi place mai mult prima opțiune.

Comentarii

  • Am învățat că, dacă trebuie să includ zero (0) în sutimi, de exemplu 432.10, va trebui să folosesc DecimalFormat(„0.00”). Aceasta în loc de DecimalFormat(„#.##”). În caz contrar, rezultatul va fi 432.1, fără 0. Sper că acest lucru vă ajută. Vă mulțumim! Pace. –  > Por masarapmabuhay.
enrico.bacis

Pentru a utiliza Math.round trebuie să modificați doar o singură linie din cod:

double inches = Math.round(centimeters / 2.54);

Dacă doriți să păstrați 2 cifre zecimale, puteți folosi acest lucru:

double inches = Math.round( (centimeters / 2.54) * 100.0 ) / 100.0;

Apropo, vă sugerez o metodă mai bună de a rezolva aceste probleme fără rotunjire.

Problema dvs. se referă doar la afișare, deci nu trebuie să schimbați modelul datelor, ci doar afișarea lor. Pentru a imprima numerele în formatul de care aveți nevoie, puteți lăsa tot codul logic astfel și imprima rezultatul în felul următor:

  1. Adăugați acest import la începutul codului dumneavoastră:

    import java.text.DecimalFormat;
    
  2. Imprimați rezultatul în acest mod:

    DecimalFormat df = new DecimalFormat("#.##");
    System.out.println(df.format(inches) + " Inch Is " +
                       df.format(centimeters) + " centimeters");
    

Șirul "#.##" este modul în care va fi afișat numărul dumneavoastră (în acest exemplu, cu 2 cifre zecimale).

Comentarii

  • Trebuie să folosesc doar Math.round. Puteți să îmi explicați cum funcționează acest exercițiu? * 100.0 ) / 100.0 –  > Por Alex.
  • De ce ar trebui să o editez? Răspunsul este corect, poți să folosești acum prima modalitate și să înveți a doua pentru a o folosi când profesorii tăi vor fi mai deschiși la minte 🙂 –  > Por enrico.bacis.
  • im sorry for my bad english. Vreau să spun că îmi editez postul și adaug Întrebare. nu prea înțeleg cum funcționează (X*100) /100.0? –  > Por Alex.
  • Round este rotunjirea numărului la cel mai apropiat număr întreg. De exemplu, Math.round(3.456) = 3. Deci, dacă doriți să păstrați două cifre zecimale, puteți face acest truc: Înmulțiți cu 100.0 (3.456*100.0 = 345.6), rotunjiți (Math.round(345.6) = 346) și apoi puteți împărți din nou (346/100.0 = 3.46) –  > Por enrico.bacis.
Peter Lawrey

Puteți imprima cu două zecimale folosind următoarele.

 System.out.printf("%.2f inch is %.2f centimeters%n", inches, centimeters);