forked from Yandex-Practicum/Java-Module-Project-YP
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathFormatter.java
More file actions
23 lines (18 loc) · 1.49 KB
/
Formatter.java
File metadata and controls
23 lines (18 loc) · 1.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import java.util.Locale;
public class Formatter {
/* Класс формирует число для вывода суммы оплаты и добавляет к нему слово "Рубль" с нужным окончанием */
String numberFormat(double number) {
String wordEnd;
int floor = (int) Math.floor(number); // Округляем число до целого
if (floor % 10 == 1 && floor % 100 != 11) { // Вычисляем остаток от деления числа на 10 и на 100 (1 - рубль, а 111 - рублей)
wordEnd = "рубль"; // Если остаток соответствует условию, то возвращаем "рубль"
}
else if (floor % 10 >= 2 && floor % 10 <=4 && (floor % 100 < 10 || floor % 100 >= 20)) { // Вычисляем остаток от деления числа на 10 и на 100 (2 - рубля, а 112 - рублей)
wordEnd = "рубля"; // Если остаток соответствует условию, то возвращаем "рубля"
}
else { // Во всех остальных случаях
wordEnd = "рублей"; // Возвращаем "рублей"
}
return String.format(Locale.ROOT,"%.2f", number) +" "+ wordEnd; // Возвращаем число с двумя знаками после точки (Locale как раз для точки, иначе выводится запятая)
}
}