Вам нужно перейти к расширениям (CTRL + SHIFT + E) на панели активности, щелкнуть шестерню рядом с расширением и выбрать Отключить (рабочая область) . По-видимому, также возможно отключить расширение глобально и активировать его, только если оно явно включено в `{workspace} /. Vscode / settings.json '.
Я использую 2 для масштаба, так как Вы сказали, что это было за валюту, но можно принять решение использовать другой масштаб округления. Я также игнорирую любые исключения, округляющиеся, может принести, так как это - довольно простой пример.
NSDecimalNumberHandler *behavior = [NSDecimalNumberHandler decimalNumberHandlerWithRoundingMode:NSRoundDown scale:0 raiseOnExactness:NO raiseOnOverflow:NO raiseOnUnderflow:NO raiseOnDivideByZero:NO];
NSDecimalNumber *price = /* eg. 10.5 */;
NSDecimalNumber *dollars = [price decimalNumberByRoundingAccordingToBehavior: behavior];
NSDecimalNumber *cents = [price decimalNumberBySubtracting: dollars];
Это даст Вам 10 и 0.5 в dollars
и cents
переменные соответственно. Если Вы хотите целые числа, можно использовать этот метод для умножения Вашего cents
питанием 10.
cents = [cents decimalNumberByMultiplyingByPowerOf10: 2];
Который в свою очередь умножит Вас cents
100, давая Вам 10 и 5 дюймов dollars
и cents
. Необходимо также знать, что можно использовать отрицательные полномочия 10 здесь для деления.
Так,
cents = [cents decimalNumberByMultiplyingByPowerOf10: -2];
отменил бы тот последний метод.
Если у Вас нет доступа к математике fns, это может работать:
double val = [dn doubleValue]; // dn is a NSDecimalNumber*
int intPart = (int) val;
double doublePart = (val - intPart);
Это может дать Вам некоторую проблему, цикл никогда не может завершаться, в этом случае необходимо будет поместить счетчик там:
while (doublePart != (int)doublePart) doublePart*=10;
Не уверенный, как что цель Математических функций c имеет только что-то
Math.floor(10.5) = 10
(10.5 - 10) * 10 = 5
бит более ясного примера (cos 10-х)
Math.floor(20.4) = 20
(20.4 - 20) * 10 = 4;
Другая проблема
(5 / 10) = .5
10 + .5 = 10.5
Эти 10, используемые на десятичных точках, зависят от количества десятичных разрядов..., например,
Math.floor(20.44) = 20
(20.44 - 20) * 100 = 44;
требует Вас ко временам 100
double floor (double x);
функция POSIX. Эта функция может использоваться для нахождения самого высокого целочисленного значения не больше, чем x
.
double x = 10.5;
double y = floor (x);
// y = 10.0
double z = x - y;
// z = 0.5