1

我试图将左右数字与浮点数分开,这样我就可以将每个数字变成一个字符串。例如,5.11,我需要能够将5变成一个字符串,并将11变成另一个字符串。

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

由此,我可以将5.11变成5' 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 回答