C++ float转换int,四舍五入
正常的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,四舍五入相关推荐
- C# float转int四舍五入
当把float转int,可以使用(int)强制转换,但是这个转换不是四舍五入的,会舍去小数点后的所有. .Net提供的Convert.ToInt16()一系列函数则是考虑到了四舍五入的.注意该函数相对 ...
- c#语言float转换int,关于C#:在x86上将float转换为int的最快方法是什么
在x86 CPU上将浮点数转换为int的最快方法是什么. 优选在C或组件中(可以在C中内嵌)以获得以下任何组合: 32/64/80位浮点数 - > 32/64位整数 我正在寻找一些比让编译器更快 ...
- 数据分析-day03-pandas-dataFrame的抽取某列数据,将float转换int型,实现直方图显示
#float转换成整型 d_num=d_num.astype(int); # -*- coding: utf-8 -*-# @File : pandas_dataframe_zhifang_demo. ...
- c#语言float转换int,c#中怎么把int向float型转换?
楼主观察很细微啊.int到float转换精度会降低,如果需要较高精度,应该考虑使用double类型.如下分析: 第一点:从int(System.Int32)到float转换精度会降低.如下代码: st ...
- java float转int ——四舍五入
正负数皆可使用: public int floatToInt(float f){int i = 0;if(f>0) //正数{i = (int)(f*10 + 5)/10;}else if(f& ...
- c#语言float转换int,【已解决】C#中double/float转int,小数部分四舍五入
[问题] C#中,需要将一个double的值转换为int类型. [解决过程] 1.参考: 去试了试Math的Floor和Ceiling,已经Convert.Int64和Int32,测试结果见代码:pr ...
- java float转换int
1.Java的简单类型及其封装器类 ⑴Java简单类型与封装类 我们知道,Java语言是典型的支持面向对象的程序语言,但考虑到有些基本数据类型的结构简单,占内存小且存取速度快等优点,Java依然提供了 ...
- java int转换float_java float转换int
1.Java的简单类型及其封装器类 ⑴Java简单类型与封装类 我们知道,Java语言是典型的支持面向对象的程序语言,但考虑到有些基本数据类型的结构简单,占内存小且存取速度快等优点,Java依然提供了 ...
- c#语言float转换int,C#Float表达式:将结果float转换为int时的奇怪行为
我有以下简单代码: int speed1 = (int)(6.2f * 10); float tmp = 6.2f * 10; int speed2 = (int)tmp; speed1并且speed ...
最新文章
- leetcode--对称二叉树--python
- 深入理解虚拟机之虚拟机字节码执行引擎
- GET POST 区别详解
- Android Studio 从安装到 Hello World
- 关于虚函数的应用(10个例子)
- HSIC简介:一个有意思的判断相关性的思路
- linux下qt检查进程是否存在,Linux下C语言实现查看进程是否存在
- python操作mongodb语法_python操作mongodb怎么找到所有的集合
- 小程序 --- 项目小练手Ⅰ
- WPF vs2015,vs2012 添加ArcObjects SDK
- LeetCode 494. 目标和(DFS+DP)
- .Net 自己写个简单的 半 ORM (练手)
- 计算机应用基础考试质量分析,基于SPSS软件的试卷分析与应用
- 诺基亚n1平板电脑刷机教程_Z Launcher详细使用教程_诺基亚 N1_平板电脑新闻-中关村在线...
- Maven项目中父子项目互相找不到的解决方法
- linux网桥内核实现分析,Linux网桥实现分析
- 2016 hitb-facebook-ctf capture-mexico-tls RSA-CRT-Attack
- pgp解密 java_Java PGP加密解密实例教程详细操作步骤
- Linux网络驱动架构
- 回溯法--深度优先搜索
热门文章
- 京东财报:业务向上,业绩向下
- html5弹出层表单,layer弹出层实现表单提交
- [渝粤教育] 广东-国家-开放大学 21秋期末考试工商企业文化10631k2
- 手机python下载_python利器官网下载-手机python利器下载4.0.1安卓版-西西软件下载...
- 安装使用简单的linux,Ubuntu 14.04下autojump的安装和简单使用
- 蒙氏感官素材【从最小到最大】蒙特梭利早教蒙氏素材
- Boostnote:适合程序员的笔记软件【转】
- 使用 npm 制作命令行脚本工具(一)
- 游戏服务器被攻击怎么办?
- 在Windows Server 2016中部署RemoteApp