我想将一个十进制数转换为int型而不四舍五入,例如:如果数字是3.9,它将变成3(如果它是四舍五入,它将变成4)。
通常不需要做任何特别的事情,因为默认情况下,从float/double类型强制转换为整数类型会导致截断:
float f = 3.9f;
int i = (int)f; // i = 3
这取决于您希望如何处理负值。将类型转换为int只会以小数点左边的部分保留的方式截断。-3.9f会变成-3。在铸造之前使用地板将确保它产生-4。(当然都在变量类型边界内)
你可以这样做:-
float myFloat = 3.9;
int result1 = (int)ceilf(myFloat );
NSLog(@"%d",result1);
int result2 = (int)roundf(myFloat );
NSLog(@"%d",result2);
int result3 = (int)floor(myFloat);
NSLog(@"%d",result3);
int result4 = (int) (myFloat);
NSLog(@"%d",result4);
<<p> 输出/strong>443.3 将float类型强制转换为int类型,它将截断你的结果
可以简单地将类型转换为int