[c/c++] programming之路(7)、数据类型转换、偷钱小程序、进制转换
一、数据类型转换
#include<stdio.h>
//某些场合,必须进行数据类型转换,以匹配调用
void main0(){
printf("%f",);//printf不管你是什么类型,解析失败就是0 0.000000
printf("\n%d",1.0);//
printf("\n%f",(float));//1.000000
printf("\n%d",(int)1.0);//
getchar();
} void main1(){
//实数转整数,会舍弃小数点部分
//printf("%d",1/2);//0
//printf("\n%d",1/2.0);//
int num=/;
float f1=/2.0;//0.5 整数与实数,结果为实数
float f2=/;//1.000000 整数与整数,结果为整数
//1按照%f解析失败,就是0.000000
printf("%d,%f",num,num);//1 0.000000
//0.5按照%d解析失败,就是0
printf("\n%f,%d",f1,f1);//0.500000 0
printf("\n%f,%d",f2,f2);//1.000000 0
getchar();
}
1.隐式转换


#include<stdio.h>
//赋值号会自动进行赋值类型转换
void main(){
int x=3.8;
printf("%d,%d",sizeof(x),sizeof(3.0));// 4 8
printf("\n%d",x);//
getchar();
}
2.显式转换(强制转换)
#include<stdio.h>
// +-*/赋值->自动转换 printf需要强制转换
void main(){
printf("%c",(char)65.0);
getchar();
}
二、偷钱小程序
#include<stdio.h>
#include<stdlib.h>
// 1234.45->1234.4
// 1234.46->1234.5
// 五舍六入
// 1234.45->12344.5 +0.4 12344.9 12344 1234.4
// 1234.46->12344.6 +0.4 12345 12345 1234.5
void main(){
float RMB,changeRMB;
scanf("%f",&RMB);
printf("现在有%0.2f元",RMB);
changeRMB=((int)(RMB*10.0f+0.4f))/10.0f;
printf("\n现在有%0.2f元\n",changeRMB);
changeRMB<RMB?printf("可以偷%f元\n",RMB-changeRMB):printf("原封不动\n"); system("pause");
}
练习:123.345 小数点第三位先五舍六入,第二位再四舍五入
#include<stdio.h>
#include<stdlib.h>
// 123.345->123.340->123.300 小数点第三位先五舍六入,第二位再四舍五入
// 123.346->123.350->123.400
// 五舍六入,再四舍五入
// 123.345->12334.5 +0.4 12334.9 12334 123.34->1233.4 +0.5 1233.9 1233 123.3
// 123.346->12334.6 +0.4 12335 12335 123.35->1233.5 +0.5 1234 1234 123.4
void main(){
float RMB,change_start_RMB,change_end_RMB;
scanf("%f",&RMB);
printf("现在有%0.3f元",RMB);
change_start_RMB=((int)(RMB*100.0f+0.4f))/100.0f;
printf("\n第三位五舍六入后有%0.3f元",change_start_RMB);
change_end_RMB=((int)(change_start_RMB*10.0f+0.5f))/10.0f;
printf("\n第二位四舍五入后有%0.3f元\n",change_end_RMB);
change_end_RMB<RMB?printf("可以偷%f元\n",RMB-change_end_RMB):printf("原封不动\n"); system("pause");
}
三、进制转换itoa
#include<stdio.h>
#include<stdlib.h> void main(){
int num;
char str[];
scanf("%d",&num);
printf("%d,%u,%o,%x",num,num,num,num);//十进制,无符号十进制,八进制,16进制
//要转换的数据,保存的字符串,要转换的进制
itoa(num,str,);
printf("\n%s",str); system("pause");
}
[c/c++] programming之路(7)、数据类型转换、偷钱小程序、进制转换的更多相关文章
- [c/c++] programming之路(5)、吓人小程序、变量、进制等
一.设计一个吓人的东西 首先创建MFC项目(勾选“基于对话框”后点击完成即可) 添加三个按钮 双击按钮进入响应代码段 void CMFCWindowsDlg::OnBnClickedButton1() ...
- 第一百二十七节,JavaScript,JSON数据类型转换,数据转换成字符串,字符串转换成数据
第一百二十七节,JavaScript,JSON数据类型转换,数据转换成字符串,字符串转换成数据 学习要点: 1.JSON语法 2.解析和序列化 前两章我们探讨了XML的结构化数据,但开发人员还是觉得这 ...
- JavaSE学习(二):进制转换—数据类型转换—Java运算符
一.进制转换 1.1 其他进制转十进制(以十六进制为例): 十六进制范围:0-9, A-F对应数字10-15 2A7E(16) = 14*16(0) +7*16(1) + 10*16(2) + ...
- java se系列(二) 关键字、注释、常量、进制转换、变量、数据类型转换、运算符
1 关键字 1.1 关键字的概述 Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名.方法名.类名.包名. 1.2 常见的关键字 备注 ...
- 2 Java基础语法(keyword,标识符,凝视,常量,进制转换,变量,数据类型,数据类型转换)
1:keyword(掌握) (1)被Java语言赋予特定含义的单词 (2)特点: 所有小写. (3)注意事项: A:goto和const作为保留字存在. B:类似于Notepad++这种高级记事本会对 ...
- Java基础复习之一篇:关健字,标识符,注释,常量,进制转换,变量,数据类型,数据类型转换
1.关健字 1.1.被Java语言赋予特定意义的单词(如:class,interface,public ,static) 1.2.全部是小写 1.3.注意事项(goto和const作为关健字保留起来) ...
- 大数据学习--day02(标识符、变量、数据类型、类型转换、进制转换、原码反码补码)
标识符.变量.数据类型.类型转换.进制转换.原码反码补码 标识符: java50个关键字不能做标识符,以数字开头不能做标识符(这个老是忘记写一个类名的时候) 变量: 变量分为成员变量和局部变量,注意作 ...
- 小程序开发-7-访问api数据与ES6在小程序中的应用
访问API数据与ES6在小程序中的应用 看待组件的两种观点 组件复用 代码分离-(特别重要) 不能在一个页面写所有的代码,代码分离具有很强的可读性.可维护性 Blink Api 介绍与测试API ur ...
- Java 基础入门随笔(2) JavaSE版——关键字、进制转换、类型转换
1.Java语言-关键字 关键字:被java语言赋予了特殊含义的词,特点是所有的字母都为小写. java涉及到的关键字整理: 用于定义数据类型的关键字 class interface byte sho ...
随机推荐
- centos 6.x下编译dpdk 16.7 心得
之前对dpdk编译了解得较少,之前直接就把centos yum update了,造成测试经理部署的centos 6.5升级为6.9,造成dpdk编译出错. 先说说centos 6.9下编译的心得: 1 ...
- ROSETTA使用技巧随笔--控制Log输出等级
一般运行ROSETTA,屏幕上的Log很多,而且很复杂,让我们看着眼晕,现在我们可以通过控制Log等级来控制屏幕上输出的东西. Integer Level 0 Fatal 100 Error 200 ...
- cocos2d-x JS 计算赋值时出现 NaN
NaN “Not a Number”.出现这个数值比较少见,以至于我们可以不理它.当运算无法返回正确的数值时,就会返回“NaN”值.NaN 值非常特殊,因为它“不是数字”,所以任何数跟它都不相等,甚至 ...
- 30.get和post的区别
POST和GET的区别 Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE.URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个 ...
- webpack使用五
一切皆模块 Webpack有一个不可不说的优点,它把所有的文件都都当做模块处理,JavaScript代码,CSS和fonts以及图片等等通过合适的loader都可以被处理. CSS webpack提供 ...
- Windows server 2008 R2实现多用户远程连接 (转)
经常使用远程桌面的朋友可能会注意到,Windows server 2008 R2中,远程桌面最多只允许两个人远程连接,第三个人就无法连接过去,但是生产环境中有一些服务器可能有许多人需要连接上去,而微软 ...
- 【2017-2-19】C#数据类型,数据转换,变量,常量,转义符
数据类型 一.基本数据类型 1.值类型(不可以为null) ⑴整型(可以为负数) byle,int,short,long(从小到大排列) 常用整型 int a=值(小于10位数) long b=值(1 ...
- Qt5 信号重载
下面以最常用的QComboBox为例说明. [1]Qt4风格的connect 示例代码: connect(ui->comboBox, SIGNAL(activated(int index)), ...
- jdk和jre区别
- 使用Groovy+Spock轻松写出更简洁的单测
当无法避免做一件事时,那就让它变得更简单. 概述 单测是规范的软件开发流程中的必不可少的环节之一.再伟大的程序员也难以避免自己不犯错,不写出有BUG的程序.单测就是用来检测BUG的.Java阵营中,J ...