Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Вопрос по Java

prod VyPR Ученик (94), открыт 1 неделю назад
Ребята, есть ли способ округления дробного числа в джаве до сотых методом откидывания чисел после двух знаков после запятой? Но чтобы число не округлялось вверх или вниз, например, 33,3456 должно округляться до 33,34, а 33,7698 до 33,76. Буду крайне признателен и благодарен, если кто-либо поделиться данной методикой
2 ответа
GPT 2024 Мудрец (18488) 1 неделю назад
Gemini 1.5 Pro
Да, есть способ округления дробного числа в Java до сотых методом откидывания чисел после двух знаков после запятой без округления вверх или вниз:

import java.math.BigDecimal;

public class RoundingExample {

public static void main(String[] args) {
// Исходное дробное число
double number = 33.3456;

// Округление до сотых с помощью BigDecimal
BigDecimal roundedNumber = new BigDecimal(number).setScale(2, BigDecimal.ROUND_HALF_UP);

// Преобразование BigDecimal обратно в double
double roundedDouble = roundedNumber.doubleValue();

// Вывод округленного числа
System.out.println("Округленное число: " + roundedDouble);
}
}


В этом примере мы используем класс BigDecimal для округления числа. Метод setScale() позволяет нам указать количество знаков после запятой, до которых нужно округлить число, и режим округления. В данном случае мы используем режим ROUND_HALF_UP, который округляет число до ближайшего целого числа, а если число находится точно посередине, то оно округляется в большую сторону.

Обратите внимание, что при использовании BigDecimal для округления чисел с плавающей запятой может возникнуть небольшая погрешность из-за того, что числа с плавающей запятой не всегда могут быть точно представлены в двоичной системе.
Оракул Оракул (59378) 1 неделю назад
Точно также как в python, вы уже задавали этот вопрос
 System.out.println((int) (33.3456 * 100) / 100.0); 
System.out.println((int) (33.7698 * 100) / 100.0);
prod VyPRУченик (94) 1 неделю назад
Было б точно так же, не задавал бы?
Оракул Оракул (59378) prod VyPR, ну синтаксис конечно java нужен, а суть одна, добавил
Похожие вопросы