#iphone #objective-c #xcode
#iPhone #objective-c #xcode
Вопрос:
Если у меня есть форматирование для текстового поля, например:
//Formats the textfield based on the pickers.
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
NSString *result = [feetArray objectAtIndex:[feetPicker selectedRowInComponent:0]];
result = [result stringByAppendingFormat:@"%@ft", [feetArray objectAtIndex:[feetPicker selectedRowInComponent:1]]];
result = [result stringByAppendingFormat:@" %@", [inchArray objectAtIndex:[inchesPicker selectedRowInComponent:0]]];
result = [result stringByAppendingFormat:@"%@", [inchArray objectAtIndex:[inchesPicker selectedRowInComponent:1]]];
result = [result stringByAppendingFormat:@" %@in", [fractionArray objectAtIndex:[fractionPicker selectedRowInComponent:0]]];
myTextField.text = resu<
}
Какой дисплей в текстовом поле похож на 00ft 00 0/16in
Как я могу изменить все это на дюймы с десятичной дробью? Мне нужно будет взять фут и умножить на 12 = переменная.Затем добавьте это к дюймам, а также возьмите мою дробь 1/16 и разделите ее на 16, чтобы получить мое десятичное значение, а затем добавьте это к дюймам, чтобы получилось 1234.0625, чтобы произвести мои вычисления. Кто-нибудь может мне помочь в этом? Заранее благодарю вас!
Ответ №1:
NSString * theString = RiseTextField.text;
NSString * feetString = [theString substringWithRange:NSMakeRange(0, 2)];
NSString * inchesString = [theString substringWithRange:NSMakeRange(5, 2)];
NSUInteger rangeLength = ([theString length] == 14) ? 1 : 2;
NSString * fractionString = [theString substringWithRange:NSMakeRange(8, rangeLength)];
double totalInInches = [feetString doubleValue] * 12 [inchesString doubleValue] [fractionString doubleValue] / 16;
Комментарии:
1. Прямо сейчас я получаю значение текстового поля, подобное этому
double a = [[RiseTextField text] doubleValue];
Я предполагаю, что мне нужно как-то теперь вызватьtotalInInchesString
??2. Вот так:
double a = [totalInInchesString floatValue];
?3. Похоже, вы получаете это от сборщиков… Я не получаю значение для его отображения, я хочу установить его в переменную… все в дюймах с десятичной дробью
4. Хорошо, я подключил его к ярлыку, просто чтобы увидеть выходные данные, и он вообще не отображает десятичную дробь.
5. Отредактировал его, чтобы получить значение из
RiseTextField
.
Ответ №2:
Вы можете легко получить нужное вам число, выполнив вычисления с имеющимися у вас там числами. Как только вы получите фактическое число, вам следует использовать NSNumberFormatter, чтобы представить его с желаемым количеством десятичных знаков и форматом.
Это должно решить вашу проблему. Или вам нужна помощь в преобразовании строк в числа, чтобы вы могли складывать их вместе?
Комментарии:
1. Ну, изначально у меня было так, что я вводил десятичные значения в текстовое поле, мне это не понравилось, поэтому я изменил ввод на средства выбора, чтобы я мог заставить пользователя вводить только то, что я хотел, вместо форматирования моей собственной клавиатуры. Итак, у меня уже есть функция для преобразования десятичной системы счисления в дробную после вычисления, но теперь мне нужно преобразовать дробь в десятичную перед вычислением. Итак, я думаю, мне действительно нужно преобразовать все в дюймы с десятичной дробью, правильно звучит?
2. Или не могли бы вы привести пример NSNumberFormatter с моим
00ft 00 0/16in
?