我试图将左右数字从浮点数中分离出来,这样我就可以将每个数字转换为字符串。例如, 5.11 ,我需要能够将 5 转换为字符串,并将 11 转换为另一个字符串。
// from float: 5.11
NSString * leftNumber = @"5";
NSString * rightNumber = @"11";
由此,我可以将 5.11 变成 5' 11"
答案 0 :(得分:2)
一种方式:
stringWithFormat
转换为字符串" 5.11"。componentsSeparatedByString
分隔成" 5"和" 11"。stringWithFormat
结合使用。答案 1 :(得分: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。
答案 2 :(得分: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"