Ответ
Для хранения целочисленных очков (счет, рейтинг, уровень) используйте примитивные целочисленные типы:
int— если значения не превышают ±2.1 миллиарда (диапазон: -2³¹ до 2³¹-1).long— для очень больших значений (до ~9.2 квинтиллионов).
Пример:
int playerScore = 10_000;
long globalHighScore = 5_000_000_000L; // Требуется суффикс 'L'
Почему НЕ использовать float или double?
Типы с плавающей точкой (float, double) подвержены ошибкам округления из-за двоичного представления. Например:
// Неправильно для точных значений:
double score = 100.0 - 0.1; // Может стать 99.89999999999999
// Правильно:
int score = 100 - 1; // Всегда 99
Исключение: Если очки могут быть дробными (например, 12.5) и требуют высокой точности, используйте BigDecimal. Для целых значений это избыточно.