我想将十进制数转换为int而不对其进行舍入,例如: 如果数字是3.9,它将变成3(如果它已被舍入,那么它将是4)。
答案 0 :(得分:5)
您通常不需要做任何特殊操作,因为默认情况下从float / double到整数类型的转换会导致截断:
float f = 3.9f;
int i = (int)f; // i = 3
答案 1 :(得分:3)
这取决于您希望如何处理负值。对int进行类型转换只会截断小数点左边的部分将保留。 -3.9f会变成-3。在铸造之前使用地板将确保它导致-4。 (当然都在变量类型边界内)
答案 2 :(得分:2)
你可以这样做: -
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);
输出 4 4 3 3
答案 3 :(得分:1)
只需将float转换为int,它就会截断你的结果。
答案 4 :(得分:0)
您可以简单地将类型转换为int