正常的float 转换为 int 的情况是采用去尾巴的方式,也就是说去掉小数点后面的数值。

1.  常规的float 转换为 int  :

例如: 9.34  =  (int) 9   ;  9.99 =  (int) 9  。

#include<stdio.h>
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

2.  float 转换为 int  需要四舍五入提高精度,则基本算法如下:

在计算是特别要注意正负数的问题,另外要注意round()函数转换后虽然数值小数点后都变为了零,但此时还是float,还需要转换为 int。

#include<stdio.h>
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

C++ float转换int,四舍五入相关推荐

  1. C# float转int四舍五入

    当把float转int,可以使用(int)强制转换,但是这个转换不是四舍五入的,会舍去小数点后的所有. .Net提供的Convert.ToInt16()一系列函数则是考虑到了四舍五入的.注意该函数相对 ...

  2. c#语言float转换int,关于C#:在x86上将float转换为int的最快方法是什么

    在x86 CPU上将浮点数转换为int的最快方法是什么. 优选在C或组件中(可以在C中内嵌)以获得以下任何组合: 32/64/80位浮点数 - > 32/64位整数 我正在寻找一些比让编译器更快 ...

  3. 数据分析-day03-pandas-dataFrame的抽取某列数据,将float转换int型,实现直方图显示

    #float转换成整型 d_num=d_num.astype(int); # -*- coding: utf-8 -*-# @File : pandas_dataframe_zhifang_demo. ...

  4. c#语言float转换int,c#中怎么把int向float型转换?

    楼主观察很细微啊.int到float转换精度会降低,如果需要较高精度,应该考虑使用double类型.如下分析: 第一点:从int(System.Int32)到float转换精度会降低.如下代码: st ...

  5. java float转int ——四舍五入

    正负数皆可使用: public int floatToInt(float f){int i = 0;if(f>0) //正数{i = (int)(f*10 + 5)/10;}else if(f& ...

  6. c#语言float转换int,【已解决】C#中double/float转int,小数部分四舍五入

    [问题] C#中,需要将一个double的值转换为int类型. [解决过程] 1.参考: 去试了试Math的Floor和Ceiling,已经Convert.Int64和Int32,测试结果见代码:pr ...

  7. java float转换int

    1.Java的简单类型及其封装器类 ⑴Java简单类型与封装类 我们知道,Java语言是典型的支持面向对象的程序语言,但考虑到有些基本数据类型的结构简单,占内存小且存取速度快等优点,Java依然提供了 ...

  8. java int转换float_java float转换int

    1.Java的简单类型及其封装器类 ⑴Java简单类型与封装类 我们知道,Java语言是典型的支持面向对象的程序语言,但考虑到有些基本数据类型的结构简单,占内存小且存取速度快等优点,Java依然提供了 ...

  9. c#语言float转换int,C#Float表达式:将结果float转换为int时的奇怪行为

    我有以下简单代码: int speed1 = (int)(6.2f * 10); float tmp = 6.2f * 10; int speed2 = (int)tmp; speed1并且speed ...

最新文章

  1. leetcode--对称二叉树--python
  2. 深入理解虚拟机之虚拟机字节码执行引擎
  3. GET POST 区别详解
  4. Android Studio 从安装到 Hello World
  5. 关于虚函数的应用(10个例子)
  6. HSIC简介:一个有意思的判断相关性的思路
  7. linux下qt检查进程是否存在,Linux下C语言实现查看进程是否存在
  8. python操作mongodb语法_python操作mongodb怎么找到所有的集合
  9. 小程序 --- 项目小练手Ⅰ
  10. WPF vs2015,vs2012 添加ArcObjects SDK
  11. LeetCode 494. 目标和(DFS+DP)
  12. .Net 自己写个简单的 半 ORM (练手)
  13. 计算机应用基础考试质量分析,基于SPSS软件的试卷分析与应用
  14. 诺基亚n1平板电脑刷机教程_Z Launcher详细使用教程_诺基亚 N1_平板电脑新闻-中关村在线...
  15. Maven项目中父子项目互相找不到的解决方法
  16. linux网桥内核实现分析,Linux网桥实现分析
  17. 2016 hitb-facebook-ctf capture-mexico-tls RSA-CRT-Attack
  18. pgp解密 java_Java PGP加密解密实例教程详细操作步骤
  19. Linux网络驱动架构
  20. 回溯法--深度优先搜索

热门文章

  1. 京东财报:业务向上,业绩向下
  2. html5弹出层表单,layer弹出层实现表单提交
  3. [渝粤教育] 广东-国家-开放大学 21秋期末考试工商企业文化10631k2
  4. 手机python下载_python利器官网下载-手机python利器下载4.0.1安卓版-西西软件下载...
  5. 安装使用简单的linux,Ubuntu 14.04下autojump的安装和简单使用
  6. 蒙氏感官素材【从最小到最大】蒙特梭利早教蒙氏素材
  7. Boostnote:适合程序员的笔记软件【转】
  8. 使用 npm 制作命令行脚本工具(一)
  9. 游戏服务器被攻击怎么办?
  10. 在Windows Server 2016中部署RemoteApp