169 похожих чатов

Ребят подскажите, у меня int число к примеру, 28000, мне

надо чтоб он его круглял до 30000 к примеру, как это реализовать?

32 ответов

57 просмотров

Я бы делил на 10000 и просто округлял. А потом бы обратно множил на 10000

Dominic Herzog
а если 1000000 будет?

ну получится на выходе тоже самое разаделил округлит умножит. Не понял подвоха.

округлять или до ближайшего большего? и какой шаг? Делите на шаг, потом делайте округление, потом умножайте на шаг

Аят-Алиев Автор вопроса
Kirill Bubochkin
округлять или до ближайшего большего? и какой шаг?...

Уже все спасибо, разобрался, делю в начале на 1000, потом округляю десятичную, и умножаю на 1000, все работает как надо😁

Аят Алиев
Округляет

ну значит, вы делаете не то, что написали

Вам нужно только десяти тысячные?

Аят-Алиев Автор вопроса
Kirill Bubochkin
ну значит, вы делаете не то, что написали

Ну сделал так, (28000/1000).celf()*1000 работает

Аят Алиев
Уже все спасибо, разобрался, делю в начале на 1000...

По хорошему вам надо на 10 делить и увеличивать 10,100,1000,10000,100000 пока вы не получите остаток от деления, как получите остаток, то надо разделить на предыдущее значение (10,100,1000...) потом округлить и потом умножить на значение.

Аят-Алиев Автор вопроса

а как будет выглядет это кодом?)

Аят Алиев
а как будет выглядет это кодом?)

int increment = 10; while (число % increment == 0){ increment*=10; }

danil l.
int increment = 10; while (число % increment == 0)...

нет, для 12345 это не сработает

Аят-Алиев Автор вопроса
Kirill Bubochkin
нет, для 12345 это не сработает

как тогда в этом случае быть?

Аят Алиев
как тогда в этом случае быть?

сравнивайте результат целочисленного деления с нулем

Аят-Алиев Автор вопроса
danil l.
int increment = 10; while (число % increment == 0)...

в таком случае дает 10к а должен давать 30к

Аят-Алиев Автор вопроса

а можно кодом пожалуйста

Аят Алиев
а можно кодом пожалуйста

шаг-то какой нужен? в 5 или в 10?

Аят-Алиев Автор вопроса
Kirill Bubochkin
шаг-то какой нужен? в 5 или в 10?

допустим если число 380, то будет 400, если 4к то даст 5к, если 11к то 10к должен давать

Аят Алиев
допустим если число 380, то будет 400, если 4к то ...

плохое условие. Функция округления должна быть идемпотентна, а у вас получается round(3800) == 4000; round(4000) == 5000. Это точно правильное условие?

Аят-Алиев Автор вопроса
Kirill Bubochkin
плохое условие. Функция округления должна быть иде...

🤔🤔🤔 давайте я уточню тогда еще, вы правы плохое условие

Аят-Алиев Автор вопроса
Kirill Bubochkin
плохое условие. Функция округления должна быть иде...

нужно округлять так, до тысячных и сотых, округлять надо так же в большую сторону, если 380, то 400, если 27.800, то 28

Аят-Алиев Автор вопроса
Kirill Bubochkin
а если 30? 24000? 23400?

(если 30 то 30, если 24 то 24) т.к округляем до тысячных, если 23.400 то 24000, т.к округляем в большую сторону

Аят Алиев
(если 30 то 30, если 24 то 24) т.к округляем до ты...

округленное число должно быть кратно 10,100,1000...?

Аят-Алиев Автор вопроса
danil l.
округленное число должно быть кратно 10,100,1000.....

да получается так и в большую сторону всегда, в меньшую быть не может

Kirill Bubochkin
шаг-то какой нужен? в 5 или в 10?

int funcA (int value, int multiplicator){ int temp =value % multiplicator; if (temp !=0){ double stepOne =(value / multiplicator); int stepTwo = stepOne.ceil(); int stepThree = stepTwo*multiplicator; return stepThree;} else{ funcA(value,multiplicator*10);} } null safety осталось пофиксить, но я гляжу условия меняются на лету.

Аят Алиев
да получается так и в большую сторону всегда, в ме...

int round(int v) { final n = pow(10, v.toString().length - 1).toInt(); return (v / n).ceil() * n; }

Аят-Алиев Автор вопроса

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта