Kertes:
Почему нельзя распространить это и на Золотые?
Потому что для них сотые доли просто не предусмотрены. Только в целом виде. Да, можно ввести, но я не могу гарантировать, что ничего не поломается. К примеру, для записи в базу значений в десятичных долях нужно заключать в кавычки, экранировать (money='0.11'); для целых это не требуется (money=1). Мне придется перешерстить весть код Топа, где идут операции с Золотыми, внести изменения, проверить.
В голосах тип данных = 6 чисел до запятой, 2 после (DECIMAL (6,2), то есть комплексная оценка может иметь максимальное значение 999999,99); для опыта на самом деле хранится целое значение, а при выводе мы просто делим на 10000. То есть 1 единица опыта в базе записана как «10000». Для многих механизмов шанс выпадения предметов тоже имеет целое значение, но при выводе делится на 100. К примеру, шанс в 1% записан как 100. Поэтому шанса менее 0.01% у нас быть не может. В этом отношении в рецептах применен более гибкий метод. Там процент высчитывается от общей суммы всех вариаций. К примеру, у одного 3 единиц, у другого указано 47, то шанс для первого будет 3*100/(3+47)=6%, для второго = 94%. Таким образом можно получить вариацию ниже 0.01 и вообще любую. Кстати, вначале у рецептов было зафиксировано жесткое значение вариаций от 1 до 100. А уж после того, как данного диапазона не стало хватать, механизм был изменен. И последствия этого изменения вы могли наблюдать долго — на одной из страниц процент отображался по старому принципу, то есть неверно.
Да, способов использовано множество, но каждый тип был выбран на стадии разработки. И пока не меняешь их — все хорошо. По Золотым изначально планировалось в таком виде — без дробных значений. И вводить дробные значения не вижу смысла.