使用cast to int而不是Math.floor将float/double值转换为整数是否节省?
var scale = 1.5;
int foo1 = (int)scale;
int foo2 = Math.floor(scale);
Run Code Online (Sandbox Code Playgroud)
Sha*_*lha 13
在这种情况下,Case to Int 和 Math.floor 都将返回整数值。如果 x=3.5,则两个函数都将在输出中返回 3。Cast to int是将任何数据类型的变量转换为整数类型的函数,另一方面Math.floor函数只会将小数转换为整数,而不转换数据类型。但如果是负值,结果会有所不同,因为 Cast to Int 接近于零,而 Math.floor 接近于负无穷大。因此,从这个角度来看,如果您正在处理实数(正数和负数),那么使用 Cast to Int 而不是 Math.floor 来获得精确输出是不安全的。