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.
Aşağıdakı bir nümunə ilə hər bir metodu ətraflı şəkildə nəzərdən keçirək.
Mündəricat
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.DOWN
və RoundingMode.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