14.07.2006, 07:50
общий
это ответ
Здравствуйте, Белкин Алексей!
Смотрите пример в приложении. Проверить нет времени, так что возможны опечатки. Но, думаю, идея понятна. В принципе, алгоритм можно чуть ускорить, будет нужно - пишите.
Приложение:
int64 round64(int64 x,int num){// Считаем длину числа xint64 y=x;int len=0;while(y){ y/=10; len++;}// Убираем по одному все последние символы.y=x;if(len>num){ for(int i=0;i<len-num-1;i++) y/=10; if(y%10>=5) // Если последняя убираемая цифра больше 5, то округляем в большую сторону y=y/10+1; else y/=10;}return y;}// Пример вызоваint64 x=163839134670;int64 y=round64(x,3);