Как округлить число до 50 в obj c / cocoa - PullRequest
2 голосов
/ 25 мая 2009

Как округлить число до 50 в obj c или c ++ / cocoa?

Я пишу налоговую программу, для окончательного просмотра мне нужно округлить доход до 50, прежде чем применять налоговую ставку.

Единственная альтернатива, о которой я могу подумать, это модификация строки, но я шаток в этой области,].

Ответы [ 3 ]

5 голосов
/ 25 мая 2009

Неясно, хотите ли вы ближайших 50 или 50 центов, так что вот оба:

Чтобы целое число было кратным 50, вам нужна формула:

x = int(x / 50) * 50               ; for truncation.
x = int((x + 25) / 50) * 50        ; for rounding.

Чтобы число с плавающей точкой кратно 0.50, вам нужна формула:

x = 0.5 * int(x / 0.5)             ; for truncation.
x = 0.5 * int((x + 0.25) / 0.5)    ; for rounding.

Обновление:

Если вы хотите, чтобы последние две цифры были изменены на 50, просто выполните одно из:

x = x - (x % 100) + 50
x = 50 + 100 * int (x / 100)
2 голосов
/ 25 мая 2009
x-=x%50; /*for truncating*/
0 голосов
/ 25 мая 2009

Дайте человеку рыбу, и у него будет еда на один день.

То, что вы хотите знать, это то, сколько «кусочков» из 50 находится в числе. Это может быть достигнуто путем деления с плавающей запятой.

const double chunksize = 50.;
const double chunks=income/chunksize;

Тогда, по-видимому, вы получите целое число кусков, округляя, усекая, ...

const int i_chunks = ceil( chunks );

И, наконец, вы хотите уменьшить количество фрагментов до исходной валюты:

const double chunked_income = i_chunks*chunksize;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...