左と右の数字をフロートから分離しようとしているので、それぞれを文字列に変換できます。たとえば、5.11の場合、 5を文字列に変換し、11を別の文字列に変換できる必要があります。
// from float: 5.11
NSString * leftNumber = @"5";
NSString * rightNumber = @"11";
これから、5.11を5' 11"に変えることができます。
左と右の数字をフロートから分離しようとしているので、それぞれを文字列に変換できます。たとえば、5.11の場合、 5を文字列に変換し、11を別の文字列に変換できる必要があります。
// from float: 5.11
NSString * leftNumber = @"5";
NSString * rightNumber = @"11";
これから、5.11を5' 11"に変えることができます。
一方通行:
stringWithFormat
文字列「5.11」に変換するために使用します。componentsSeparatedByString
「5」と「11」の配列に分ける場合に使用します。stringWithFormat
。NSString stringWithFormat
そのために数学関数を使用できます。
float n = 5.11;
NSString * leftNumber = [NSString stringWithFormat:@"%0.0f", truncf(n)];
NSString * rightNumber = [[NSString stringWithFormat:@"%0.2f", fmodf(n, 1.0)] substringFromIndex:2];
NSLog(@"'%@' '%@'", leftNumber, rightNumber);
ただし、0.11 フィートは11 インチではないため、特に通常の単位で長さを表す場合、これは理想的ではありません。サポートしている最小単位 (たとえば、1/16 インチ) の整数として長さを表し、表示目的で実際の長さに変換することをお勧めします。この表現では、5 フィート 11 インチは 5*12*16 + 11*16 = 1136 になります。
数値フォーマッタをそのまま使用できます
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
formatter.numberStyle = NSNumberFormatterDecimalStyle;
formatter.decimalSeparator = @"'";
formatter.positiveSuffix = @"\"";
formatter.alwaysShowsDecimalSeparator = true;
NSString *numberString = [formatter stringFromNumber:@(5.11)];
// Output : 5'11"