Top community members
All Questions Ask Question

Welcome to Dirask IT community! ÔŁĄ ­čĺ╗
We are community of people that helps each other.

If you think you have some skills to help others

help someone and become a part of our community - List Q & A

Java - jak zaokr─ůgli─ç do dwóch miejsc po przecinku

1 answers
3 points

Hej :D

Jak zaokr─ůgli─ç wynik, ┼╝eby po przecinku zawsze by┼éy dwa miejsca np. 56.99? Pr├│bowa┼éam z Math.round(), ale niestety nie dzia┼éa :(┬á

1 answers
3 points

Zaaokro─ůglanie liczb zmiennoprzecinkowych nie jest super proste i trzeba troche czasu na to po┼Ťwi─Öci─ç, aby to zrozumie─ç. Najlepiej przerobi─ç sobie du┼╝o przyk┼éad├│w i napisa─ç kilka utili.

Og├│lnie zagadnienie zmiennoprzecinkowych jest do┼Ť─ç obszernym tematem w programowaniu i informatyce. Dla pocz─ůtkuj─ůcych proponuje nie zag┼é─Öbia─ç si─Ö zbytnio w szczeg├│┼éy, gdy┼╝ mo┼╝e troszk─Ö zniech─Öci─ç ilo┼Ť─ç informacji dost─Öpnych na ten temat.

Przykład 1 z Math.round, mnożenie i dzielenie

Tutaj mamy metod─Ö do zaokr─ůglania i kilka przyk┼éad├│w jej u┼╝ycia. Proponuje sobie przekopiowa─ç ten przyk┼éadzik i zmodyfikowa─ç go, aby lepiej zrozumie─ç dzia┼éanie.

public class RoundExample1 {

    public static void main(String[] args) {

        System.out.println(roundTo2DecimalPlace(56.990));  // 56.99
        System.out.println(roundTo2DecimalPlace(56.994));  // 56.99
        System.out.println(roundTo2DecimalPlace(56.995));  // 57.0
        System.out.println(roundTo2DecimalPlace(56.996));  // 57.0
        System.out.println(roundTo2DecimalPlace(56.999));  // 57.0
    }

    public static double roundTo2DecimalPlace(double value) {
        return Math.round(value * 100.0) / 100.0;
    }
}

Przykład 2 z BigDecimal

Precyzje mamy ustawion─ů do drugiego miejsca po przeciunku dlatego dla trzeciego przyk┼éadu┬á56.995 dostajemy:┬á56.99, zamiast 57.0

import java.math.BigDecimal;
import java.math.RoundingMode;

public class RoundExample2 {

    public static void main(String[] args) {

        System.out.println(round(56.990)); // 56.99
        System.out.println(round(56.991)); // 56.99
        System.out.println(round(56.995)); // 56.99
        System.out.println(round(56.996)); // 57.0
        System.out.println(round(56.999)); // 57.0
    }

    public static double round(double value) {
        int precision = 2;
        BigDecimal bigDecimal = new BigDecimal(value);
        bigDecimal = bigDecimal.setScale(precision, RoundingMode.HALF_UP);
        return bigDecimal.doubleValue();
    }
}

 

0 comments Add comment

Checkout latest Findings & News:

Checkout latest questions:

Checkout latest wiki articles:

Hey ­čĹő
Would you like to know what we do?
  • Dirask is IT community, where we share coding knowledge and help each other to solve coding problems.
  • We welcome everyone,
    no matter what the experience,
    no matter how basic the question is,
    this community will help you.
Read more