Поломав голову 2 часа родил такую конструкцию. Все нормально рассчитывает для десятков, сотен, тысяч и наверное т.д(дальше не проверял). Для одной цифры работать скорее всего не будет, но в таком случае можно просто поставить для, например, "7" return "7" и все. Но суть в другом. Валидатор не засчитывает toOctal(int), хотя toDecimal(int) засчитал, а они абсолютно идентичные меняется только "10" на "8" и наоборот. Что у меня не так?