C++ float转换int

C++ float转换int默认 C float 转换成 int 是直接去除小数点后边的数字常规的 float 转换为 int 例如 9 34 int 9 9 99 int 9 include lt stdio h gt intmain floati 9 34 floatj 9 99 inta b

默认C++float转换成int是直接去除小数点后边的数字

  1. 常规的float转换为 int
    例如:9.34 = (int) 9;9.99 = (int) 9

#include 
   
     int main() { float i = 9.34; float j = 9.99; int a, b; a = (int) i; b = (int) j; printf("a = %d\n",a); printf("b = %d\n",b); } 
   

上面的输出结果为:

 a = 9 b = 9 
  1. float 转换为 int 需要四舍五入提高精度,则基本算法如下:
    在计算是特别要注意正负数的问题,另外要注意round()函数转换后虽然数值小数点后都变为了零,但此时还是float,还需要转换为int

#include 
   
     int main() { float zer = 0; float i = 9.34; float j = 9.99; float k = -9.34; float m = -9.99; int a, b, c, d, e; int a1, b1, c1, d1, e1; a = (int) (i * 10 + 5) / 10; b = (int) (j * 10 + 5) / 10; c = (int) (k * 10 - 5) / 10; d = (int) (m * 10 - 5) / 10; e = zer; a1 = (int) round(i) b1 = (int) round(j); c1 = (int) round(k); d1 = (int) round(m); e1 = (int) round(zer); printf("a = %d\n",a); printf("b = %d\n",b); printf("c = %d\n",c); printf("d = %d\n",d); printf("e = %d\n",e); printf("round a1 is %f\n", a1); printf("round b1 is %f\n", b1); printf("round c1 is %f\n", c1); printf("round d1 is %f\n", d1); printf("round e1 is %f\n", e1); } 
   

上面的输出结果为:

 a = 9 b = 10 c = -9 d = -10 e = 0 round a1 is 9 round b1 is 10 round c1 is -9 round d1 is -10 round e1 is 0 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/209737.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午8:31
下一篇 2026年3月19日 上午8:32


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号