Objective C, Trim 一个浮点数
Objective C, Trim a float
我 float
喜欢 3500,435232123
。我只想知道是否存在(在 Objective C 中)一个让我只保留最后 4 位数字的函数是 2123。
您可以使用 NSNumberFormatter
NSNumberFormatter *format = [[NSNumberFormatter alloc]init];
[format setNumberStyle:NSNumberFormatterDecimalStyle];
[format setRoundingMode:NSNumberFormatterRoundHalfUp];
[format setMaximumFractionDigits:4];
[format setMinimumFractionDigits:4];
string = [NSString stringWithFormat:@"%@",[format stringFromNumber:[NSNumber numberWithFloat:65.50055]] ;
或者干脆
NSString *string = [NSString stringWithFormat:@"%.04f", floatValue];
如果您只需要最后四位数字,请将浮点数转换为字符串
NSString *string = [NSString stringWithFormat:@"%f", floatValue];
并获取最后四个字符
NSString *lastFour = [string substringFromIndex: [string length] - 4];
如果你想得到小数部分,你可以做x - floor(x)。例如:
float x = 3500,435232123;
NSString *string = [NSString stringWithFormat:@"%.04f", x - floor(x)];
并按照 Fawad Masud 所说的执行 4 位小数。
没有,据我所知没有这个功能。但这里有一种方法可以实现您想要的。
首先你要把它四舍五入到点后的四位数:
NSString *exampleString = [NSString stringWithFormat:@"%.04f", valueToRound];
然后你得到逗号在 exampleString
:
中的位置
NSRange commaRange = [valueString rangeOfString:@","];
最后,您使用 NSRange
中的值创建了 finalString
。子字符串从 commaRange.location+commaRange.length
开始,因为那是紧跟在逗号之后的索引。
NSString *finalString = [valueString substringWithRange:NSMakeRange(commaRange.location+commaRange.length,valueString.length-commaRange.location-commaRange.length)];
希望对你有所帮助。
我认为没有预定义函数。
而我想到的解决方案是:
float floatNum = 3500.435232123;
将 float
数字转换为字符串和 trim/substring 字符串,例如:
NSString *stringFloat = [NSString stringWithFormat:@"%f", floatNum];
NSString *newString = [stringFloat substringWithRange:NSMakeRange(stringFloat.length - 4, stringFloat.length)];
NSLog(@"%@", newString);
另一个是这样的:
NSString *stringFloat = [NSString stringWithFormat:@"%f", floatNum];
//separates the floating number to
arr[0] = whole number
arr[1] = decimals
NSArray *arr=[str componentsSeparatedByString:@"."];
因为你只想研究小数,我想 arr[1]
就是你需要的..
NSString *stringDecimals = (NSString *)arr[1];
if ( stringDecimals.length > 4) //check the length of the decimals then cut if exceeds 4 character..
{
stringDecimals = [stringDecimals substringWithRange:NSMakeRange(stringDecimals.length - 4, stringDecimals.length)];
}
NSLog(@"stringDecimals: %@", stringDecimals);
我 float
喜欢 3500,435232123
。我只想知道是否存在(在 Objective C 中)一个让我只保留最后 4 位数字的函数是 2123。
您可以使用 NSNumberFormatter
NSNumberFormatter *format = [[NSNumberFormatter alloc]init];
[format setNumberStyle:NSNumberFormatterDecimalStyle];
[format setRoundingMode:NSNumberFormatterRoundHalfUp];
[format setMaximumFractionDigits:4];
[format setMinimumFractionDigits:4];
string = [NSString stringWithFormat:@"%@",[format stringFromNumber:[NSNumber numberWithFloat:65.50055]] ;
或者干脆
NSString *string = [NSString stringWithFormat:@"%.04f", floatValue];
如果您只需要最后四位数字,请将浮点数转换为字符串
NSString *string = [NSString stringWithFormat:@"%f", floatValue];
并获取最后四个字符
NSString *lastFour = [string substringFromIndex: [string length] - 4];
如果你想得到小数部分,你可以做x - floor(x)。例如:
float x = 3500,435232123;
NSString *string = [NSString stringWithFormat:@"%.04f", x - floor(x)];
并按照 Fawad Masud 所说的执行 4 位小数。
没有,据我所知没有这个功能。但这里有一种方法可以实现您想要的。
首先你要把它四舍五入到点后的四位数:
NSString *exampleString = [NSString stringWithFormat:@"%.04f", valueToRound];
然后你得到逗号在 exampleString
:
NSRange commaRange = [valueString rangeOfString:@","];
最后,您使用 NSRange
中的值创建了 finalString
。子字符串从 commaRange.location+commaRange.length
开始,因为那是紧跟在逗号之后的索引。
NSString *finalString = [valueString substringWithRange:NSMakeRange(commaRange.location+commaRange.length,valueString.length-commaRange.location-commaRange.length)];
希望对你有所帮助。
我认为没有预定义函数。
而我想到的解决方案是:
float floatNum = 3500.435232123;
将 float
数字转换为字符串和 trim/substring 字符串,例如:
NSString *stringFloat = [NSString stringWithFormat:@"%f", floatNum];
NSString *newString = [stringFloat substringWithRange:NSMakeRange(stringFloat.length - 4, stringFloat.length)];
NSLog(@"%@", newString);
另一个是这样的:
NSString *stringFloat = [NSString stringWithFormat:@"%f", floatNum];
//separates the floating number to
arr[0] = whole number
arr[1] = decimals
NSArray *arr=[str componentsSeparatedByString:@"."];
因为你只想研究小数,我想 arr[1]
就是你需要的..
NSString *stringDecimals = (NSString *)arr[1];
if ( stringDecimals.length > 4) //check the length of the decimals then cut if exceeds 4 character..
{
stringDecimals = [stringDecimals substringWithRange:NSMakeRange(stringDecimals.length - 4, stringDecimals.length)];
}
NSLog(@"stringDecimals: %@", stringDecimals);