我有一个应用程序可以导入一长串 csv 数据。
我需要处理获取的数字,但为了做到这一点,我需要去除整数数字的小数位,并保留 x.5 作为小数点的未计算数字
例如
1.0 make it 1
1.50 make it 1.5
实现此目标的最佳方法是什么?
非常感谢!
最佳答案
您可以使用 modf
来检查小数部分是否等于零。
-(BOOL)isWholeNumber:(double)number
{
double integral;
double fractional = modf(number, &integral);
return fractional == 0.00 ? YES : NO;
}
也适用于某些边界情况。
float a = 15.001;
float b = 16.0;
float c = -17.999999;
NSLog(@"a %@", [self isWholeNumber:a] ? @"YES" : @"NO");
NSLog(@"b %@", [self isWholeNumber:b] ? @"YES" : @"NO");
NSLog(@"c %@", [self isWholeNumber:c] ? @"YES" : @"NO");
输出
a NO
b YES
c NO
如果数字非常接近整数,其他解决方案将不起作用。不知道你有没有这个需求。
之后,您可以使用 NSNumberFormatter
随意显示它们,一个用于整数,一个用于分数。
关于如果数字是 int,ios 去掉小数位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12313701/