我试图将左右数字与浮点数分开,这样我就可以将每个数字变成一个字符串。例如,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"