Java-da ondalık yerləri necə məhdudlaşdırmaq olar


JavaBaxılıb 143

Bu təlimatda, tələbə əsasən Java-da onluq yerlərin necə məhdudlaşdırılacağını başa düşəcəyik. Java-da bir ədədi n onluq yerə qədər yuvarlaqlaşdırmaq üçün müxtəlif üsullar var.

Bunun üçün giriş sətri ümumiyyətlə onluq nöqtədən sonra bir neçə rəqəmdən ibarət olan bir şamandıra və ya ikiqat dəyərdir. Onluqdan sonra rəqəm sayını məhdudlaşdırmaq istədiyimiz vəziyyətlər ola bilər.

Java-da ondalık yerləri necə məhdudlaşdırmaq olarPin

Aşağıdakı bir nümunə ilə hər bir metodu ətraflı şəkildə nəzərdən keçirək.

Bir ədədi n onluq yerə qədər yuvarlaqlaşdırınPin

Format () metodundan istifadə etmək

Bu nümunədə, onluq yerlərinə məhdudlaşdırmaq üçün format () metodundan necə istifadə edəcəyimizi görəcəyik. İlk arqument formatı müəyyənləşdirir. "%.2f" 2 ondalık yerini göstərir, "%.3f" 3 ondalık yeri və s. bildirir. Beləliklə, format arqumentində onluq yerlərin həddindən bəhs edə bilərik. İkinci arqument giriş dəyəridir.

public class LimitDecimalDemo {

  public static void main(String[] args) {
    Double d = 12345.783214;
    System.out.println("Original value: " + d);
    System.out.println("2 decimal format: ");
    System.out.format("%.2f", d);
    System.out.println("\n3 decimal format: ");
    System.out.format("%.3f", d);
    System.out.println("\n4 decimal format: ");
    System.out.format("%.4f", d);
  }

}
Original value: 12345.783214
2 decimal format: 
12345.78
3 decimal format: 
12345.783
4 decimal format: 
12345.7832

String.format istifadə

An üçün onluq nöqtədən sonra 0 əlavə etmək istədiyimiz vəziyyətlər də ola bilər n rəqəmlərin sayı. Aşağıda eyni şeyi göstərən bir nümunə var. Bunun üçün istifadə edə bilərik String.format() metodu.

public class LimitDecimalDemo {

  public static void main(String[] args) {
    
    Double n = 3.0;
    System.out.println(String.format("%.5f", n));
    System.out.println(String.format("%.3f", n));
    
  }

}
3.00000
3.000

DecimalFormat istifadə

DecimalFormat sinfi, başlanğıc formatına əsasən onluqları toplamaq üçün müxtəlif format seçimlərinə malikdir. Aşağıdakı nümunədə biz DecimalFormat kimi format ilə "#.##". Bu, ondalık yerini 2 rəqəmə qədər məhdudlaşdırır deməkdir.

Biz də istifadə edə bilərik setRoundingMode başlanğıc formatı üçün n onluq yer üçün ədədi yuvarlaqlaşdırma üsulu. Misal üçün, RoundingMode.DOWNRoundingMode.FLOOR rəqəmi aşağı dəyərə yuvarlaqlaşdırır. Qalan yuvarlaqlaşdırma rejimləri ən yüksək dəyərə yuvarlanır.

import java.math.RoundingMode;
import java.text.DecimalFormat;

public class DecimalFormatDemo {

  public static void main(String[] args) {
    Double d = 1234.675389;
    DecimalFormat df = new DecimalFormat("#.##");

    System.out.println("Original input value: " + d);
    System.out.println("Using DecimalForamt: " + df.format(d));
    
    df.setRoundingMode(RoundingMode.DOWN);
    System.out.println("Using Rounding mode DOWN: " + df.format(d));
    
    df.setRoundingMode(RoundingMode.CEILING);
    System.out.println("Using Rounding mode CEILING: " + df.format(d));
    
    df.setRoundingMode(RoundingMode.UP);
    System.out.println("Using Rounding mode UP: " + df.format(d));
    
    df.setRoundingMode(RoundingMode.FLOOR);
    System.out.println("Using Rounding mode FLOOR: " + df.format(d));
    
    df.setRoundingMode(RoundingMode.HALF_DOWN);
    System.out.println("Using Rounding mode HALFDOWN: " + df.format(d));
    
    df.setRoundingMode(RoundingMode.HALF_EVEN);
    System.out.println("Using Rounding mode HALFEVEN: " + df.format(d));
    
    df.setRoundingMode(RoundingMode.HALF_UP);
    System.out.println("Using Rounding mode HALFUP: " + df.format(d));
  }

}
Original input value: 1234.675389
Using DecimalForamt: 1234.68
Using Rounding mode DOWN: 1234.67
Using Rounding mode CEILING: 1234.68
Using Rounding mode UP: 1234.68
Using Rounding mode FLOOR: 1234.67
Using Rounding mode HALFDOWN: 1234.68
Using Rounding mode HALFEVEN: 1234.68
Using Rounding mode HALFUP: 1234.68

Math.round () istifadə etmək

The Math.round() metod Java-dakı ondalık yerləri məhdudlaşdırmaq üçün başqa bir üsuldur. Bir ədədi 1 onluğa qədər yuvarlaqlaşdırmaq istəyiriksə, onda daxil olan ədədi 10.0-a vurub bölərik round() metod. Eynilə, 2 onluq üçün 100.0, 3 ondalık üçün, 1000.0 və s. İstifadə edə bilərik.

public class LimitDecimalDemo {

  public static void main(String[] args) {
    
    Double n = 123.4567;
    System.out.println("Original value: " + n);
    
    Double d = (double) (Math.round(n*10.0)/10.0);
    System.out.println(d);
    
    d = (double) (Math.round(n*100.0)/100.0);
    System.out.println(d);
    
    d = (double) (Math.round(n*1000.0)/1000.0);
    System.out.println(d);
  }

}
Original value: 123.4567
123.5
123.46
123.457

Apache Commons kitabxanasından istifadə

The apache-commons math3 kitabxanası bir Precision sinif metodu ehtiva edir round() bir ədədi lazımlı onluq yerlərinə qədər yuvarlaqlaşdırmaq üçün istifadə edə bilərik. Birinci parametr giriş dəyəri, ikinci parametr isə məhdudlaşdırılacaq ondalık yerlərin sayıdır. 2-yə keçsək, onda 2 onluq nöqtəni və s.

Aşağıda Precision sinifinin istifadəsini göstərən bir nümunə var.

import org.apache.commons.math3.util.Precision;

public class DecimalPrecision {

  public static void main(String[] args) {
    Double d = 456.98234;
    
    Double n = Precision.round(d,2);
    System.out.println("Original value: " + d);
    System.out.println("Formatted value: " + n);
    
    n = Precision.round(d, 3);
    System.out.println("Formatted value: " + n);
  }

}
Original value: 456.98234
Formatted value: 456.98
Formatted value: 456.982

Bu yazıda Java-dakı məhdud ondalık yerləri əhatə etdik. Oxumaqla maraqlana bilərsən Int-i Java-da Stringə necə çevirmək olar

arayış

Şərh yaz

Translate »
1