Zaokrąglanie-java

Awatar użytkownika
ariadna
Gość Specjalny
Gość Specjalny
Posty: 2702
Rejestracja: 22 maja 2005, o 22:26
Płeć: Kobieta
Lokalizacja: Olsztyn/Berlin
Podziękował: 47 razy
Pomógł: 642 razy

Zaokrąglanie-java

Post autor: ariadna » 6 sty 2008, o 13:17

Jak najprościej zaokrąglić liczbę do dwóch(czterech) miejsc po przecinku?

Z góry dziękuję
Rekrutacja Instytut Matematyczny, Uniwersytet Wrocławski (gif)

Awatar użytkownika
Undre
Gość Specjalny
Gość Specjalny
Posty: 1430
Rejestracja: 15 lis 2004, o 02:05
Płeć: Mężczyzna
Lokalizacja:
Podziękował: 3 razy
Pomógł: 92 razy

Zaokrąglanie-java

Post autor: Undre » 6 sty 2008, o 15:10

"trick shot"
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Math.html pisze:public static int round(float a)

Returns the closest int to the argument.
wpierw pomnożyć przez \(\displaystyle{ 10^n}\), zaokrąglić, podzielić przez \(\displaystyle{ 10^n}\) ( naturalnie dla \(\displaystyle{ n}\) miejsc, które chcesz mieć po przecinku )

smiechowiec
Użytkownik
Użytkownik
Posty: 374
Rejestracja: 21 cze 2007, o 11:28
Płeć: Mężczyzna
Lokalizacja: Łostowice
Pomógł: 146 razy

Zaokrąglanie-java

Post autor: smiechowiec » 6 sty 2008, o 17:32

dokładnie tak jak napisał Undre lub koryzstając z formatowania tekstu

Kod: Zaznacz cały

public class Main {

/* d licza zaokrągalan,   ic liczba miejsc po przecinku */
static public double round(double d, int ic) {
  java.text.NumberFormat nf = java.text.NumberFormat.getInstance();
  nf.setMaximumFractionDigits(ic);
  nf.setMinimumFractionDigits(ic);
  return Double.parseDouble((nf.format(d)).replaceAll(",", ".").replaceAll(" ", "") );
}
    public Main() {
    }
    public static void main(String[] args) {
        double d = 1.123456789;
        System.out.println( round(d, 4) );
    }
    
}

ODPOWIEDZ