Как я могу преобразовать рациональные числа, такие как 1.24234
или же 45.314
в целые числа, такие как 124234
или же 45314
также получить количество десятичных цифр?
Преобразовать в строку
Найти положение десятичной точки.
Вычтите это из длины вышеупомянутой строки, для числа десятичных знаков.
Затем возьмите точку из строки.
int i=0;
float a = 1.24234;
for(i; i<20; i++){
float b=pow(10,i);
if((a*b)%10==0)
break;
}
int c = pow(10,i-1);
int result = a*c;
Я думаю, что этот код поможет вам.
Если ваш номер W.D (Whole.Decimal)
Чтобы получить W, просто сделайте (int) W.D.
Чтобы получить D вы можете сделать W.D — (Int) W.D
Теперь у вас есть целое число и разделенная десятичная точка. Чтобы вычислить свой множитель х10 на вашем W, делите D на 10, пока не получите результат, который меньше 10.
Сейчас: WxN + D
(где N — это количество раз, которое вы поделили на 10)
Примечание: я не писал код в качестве примера, потому что чувствую, что это может быть домашнее задание. Кроме того, если вы используете очень длинные (т. Е. Точные числа с плавающей запятой), это не сработает, и может привести к переполнению. Проверьте свои границы, прежде чем реализовывать что-то подобное.