1

左と右の数字をフロートから分離しようとしているので、それぞれを文字列に変換できます。たとえば、5.11の場合、 5を文字列に変換し、11を別の文字列に変換できる必要があります。

// from float: 5.11
NSString * leftNumber  = @"5";
NSString * rightNumber = @"11";

これから、5.115' 11"に変えることができます。

4

3 に答える 3

2

一方通行:

  1. stringWithFormat文字列「5.11」に変換するために使用します。
  2. componentsSeparatedByString「5」と「11」の配列に分ける場合に使用します。
  3. と組み合わせるstringWithFormat
于 2014-11-17T02:03:20.057 に答える
2

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 になります。

于 2014-11-17T02:03:42.543 に答える
1

数値フォーマッタをそのまま使用できます

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
formatter.numberStyle = NSNumberFormatterDecimalStyle;
formatter.decimalSeparator = @"'";
formatter.positiveSuffix = @"\"";
formatter.alwaysShowsDecimalSeparator = true;
NSString *numberString = [formatter stringFromNumber:@(5.11)];

// Output : 5'11"
于 2014-11-17T02:36:03.017 に答える