如果数字是 int,ios 去掉小数位

标签 ios rounding decimal-point

我有一个应用程序可以导入一长串 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/

相关文章:

r - 使用 round() 后跟 signif() 进行连续舍入后的尾随零

SQL四舍五入没有小数点的整数

javascript - 使用多个小数点对 'numbers' 进行排序

c# - 使用 RegEx 将点 (.) 替换为逗号 (,)?

ios - usesEvenOddFillRule 是如何工作的?

ios - 如何创建自己的完成处理程序作为方法参数的一部分

ios - 键盘打开时更改 View 位置 - objective-c

ios - 如何使用 swift 从菜单选项卡栏 Controller 将 UIView 添加到 UIViewController?

java - 将 BigDecimal 舍入到最接近的 5 美分

c - 将小数十进制转换为二进制后,我的输出显示的小数位不超过 6 位。我需要小数点后 12 位