как привести число к десяти или к сотни или к тысячи?

я что-то не понимаю, но может есть вариант какой то? допустим есть число 169. мне надо его разделить на 10%. я его делю. 169 / 10 == 16. если это 16 то надо привести число так, чтобы это было 10. если число получается больше 100 и меньше 1000, то число должно быть 100. если число меньше 10000, то выводить число 1000. я попробывал кое что, но это не правильно, даже не хочется выкладывать сюда что я написал.

        int sp = curs_high / 10;
        printf ( "sp: %d\n", sp );
        sp = curs_high - sp;
        printf ( "new sp: %d\n", sp );

Ответы (2 шт):

Автор решения: Harry

Вам надо что-то вроде этого?

pow(10,floor(log10(x)));
→ Ссылка
Автор решения: xverizex

тот ответ который дан, тоже самое что и я сделал вот так.

                int sp;
                int nn = 1;
                sp = curs_high / 10;
                while ( sp % 10 != 0 ) {        
                        sp = sp / 10;
                        nn++;
                        if ( sp < 10 ) {
                                sp = 1;
                                break;
                        }

                }
                for ( int i = 0; i < nn; i++ ) {
                        sp *= 10;
                }

блин. оказывается я не то хотел что нужно. но если будет меньше тысячи и больше 500, то я хотел по 10 делать, а так было бы много чисел. ладно. спасибо.

→ Ссылка