У меня возникли проблемы с моим приложением я пытаюсь умножить 2 UITextField значения дать результат в UILabel. но когда я запускаю приложение на симуляторе, умножение и результат в порядке, но когда я запускаю в своем iDevice, результат отличается, потому что он не распознает «точку» десятичной точки, используемую в моей стране (Бразилия) в значениях (валюта) я думаю.Почему разные значения, но с тем же кодом
изображение ниже, чтобы увидеть разницу: код, я использую:
//create NSNumberFormatter to be able to show currency
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[numberFormatter setMaximumFractionDigits:2];
//Calculate total cost of trip
NSNumber *total = [NSNumber numberWithDouble:(([self.quantos.text doubleValue]) * [self.pricePerIten.text doubleValue])];
//Set the total cost label
self.totalCost.text = [numberFormatter stringFromNumber:total];
Спасибо!
Пробовали ли вы использовать 'NSLog()', чтобы увидеть фактическое значение 'total'? Похоже, что текст в ваших ярлыках отформатирован в разных валютах? (Доллар США против бразильского реального?) –
Кроме того, «.» vs. "," как маркер десятичной точки указывает на разницу в локали между Xcode и устройством. Было бы неплохо, если бы кто-нибудь, кто разбирался в форматировании чисел и локалях iOS, мог добавить некоторые подробности ... (я так и не получил его полностью) –
Здравствуйте, @NicolasMiari, новичок в sdk. но я думаю, что проблема в локали. Я собираюсь сдаться. единственное, что я хотел, это умножить значение числа *, чтобы узнать общий счет, который вы понимаете? – ViniciusPV