Если вы хотите что-то простое для чтения и отслеживания, вы можете попробовать что-то вроде этого:
float convertToDecimal(int x)
{
float y = (float) x;
while( y > 1 ){
y = y / 10;
}
return y;
}
float convertToDecimal(int x, int y)
{
return (float) x + convertToDecimal(y);
}
Это просто уменьшает одно целое число до первой с плавающей точкой меньше 1 и добавляет его к другому one.
Это становится проблемой, если вы когда-нибудь захотите использовать число типа 1.0012, которое будет представлено как 2 целых числа. Но это не часть вопроса. Чтобы решить эту проблему, я бы использовал третье целочисленное представление в качестве отрицательной степени 10 для умножения второго числа. IE 1,0012 будет 1, 12, 4. Это будет затем закодировано следующим образом:
float convertToDecimal(int num, int e)
{
return ((float) num) / pow(10, e);
}
float convertToDecimal(int x, int y, int e)
{
return = (float) x + convertToDecimal(y, e);
}
Это немного более кратко с этим ответом, но это не поможет ответить на ваш вопрос. Это может помочь показать проблему с использованием только 2 целых чисел, если вы придерживаетесь этой модели данных.