как да се отсече в 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:
Можете да получите необходимата стойност, като поставите желаното число в скобите на променливата