как да се отсече в java -


Отговор 1:

начинът на закръгляване на числата е да се използва методът Math.round ().

В този случай можем да контролираме n броя десетични знаци, като умножим и разделим с 10 ^ n:

public static double roundAvoid (двойна стойност, int places) {

двойна скала = Math.pow (10, места);

връщане Math.round (стойност * мащаб) / мащаб;

}

Този метод не се препоръчва, тъй като отрязва стойността. В много случаи стойностите са закръглени неправилно

System.out.println (roundAvoid (1000.0d, 17));

// ИЗХОДИ: 92.23372036854776 !!

System.out.println (roundAvoid (260.775d, 2));

// ИЗХОДИ: 260,77 вместо очаквани 260,78


Отговор 2:

Ако просто искате да отпечатате, можете да използвате.

System.out.format ("%. 2f% n", floatNumber);

Ако трябва да използвате номера

Метод 3.

публичен статичен плаващ кръг (float d, int decimalPlace) { върнете BigDecimal.valueOf (d) .setScale (decimalPlace, BigDecimal.ROUND_HALF_UP) .floatValue ();}

Метод 2.

float a = 12.345f;int b = 2; a = (float) (((int) Math.pow (10, b) * a)) / Math.pow (10, b));

Метод 1.

float roundTwoDecimals (float d) { DecimalFormat twoDForm = нов DecimalFormat ("#. ##"); върнете Float.valueOf (twoDForm.format (d)); }

Отговор 3:

публичен статичен плаващ кръг (float d, int decimalPlace) {BigDecimal bd = new BigDecimal (Float.toString (d)); bd = bd.setScale (decimalPlace, BigDecimal.ROUND_HALF_UP); върнете bd.floatValue (); } Вижте следната връзка за повече информация:

BigDecimal (Java Platform SE 6)

Отговор 4:

x = 46,218423 y = Math.round (x * 100,0) / 100,0

Контекст: Опитвате се да добавите значимост към цифрите, като ги умножите по 100, като му придадете 2 знака след десетичната запетая, след което закръглявате числото си и след това разделяте на 100, за да получите обратно първоначалния резултат.


Отговор 5:

Използвайте .2f

Например Scanf („%. 2f“, & a);


Отговор 6:

Можете да получите необходимата стойност, като поставите желаното число в скобите на променливата