开发者社区> 流楚丶格念> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

各类数值型数据间的混合运算

简介: 各类数值型数据间的混合运算
+关注继续查看

整型、实型、字符型数据间可以混合运算


1.自动转换


发生自动转换的情况:


  • 运算转换------不同类型数据混合运算时


  • 赋值转换------把一个值赋给与其类型不同的变量时


  • 输出转换------输出时转换成指定的输出格式


  • 函数调用转换------实参与形参类型不一致时转换


1.1.运算转换规则:


不同类型数据运算时先自动转换成同一类型


基本规则:


  1. 字符必须先转换为整数(C语言规定字符类型数据和整型数据之间可以通用) 。


  1. short型转换为int型(同属于整型) 。


  1. float型数据在运算时一律转换为双精度(double)型,以提高运算精度(同属于实型) 。


具体规则如下图所示:


image


例如:


char ch;
int i;
float f;
double d;


在进行下面计算时候


ch/i+f*d-(i+f)


会内部准换成这样


image


最后得到一个double类型的结果。


同理下面例子也是一样


image


2.强制转换


一般形式:(类型名)(表达式)


例:


(int)(x+y)      // 准换 x+y
(int)x+y        // 只转换x 
(double)(3/2)
(int)3.6


※※※ 说明 ※※※:强制转换得到所需类型的中间变量,原变量类型不变(也就是说强制准换之后不影响本身数据的类型,只是得到一个准换后的结果)。


2.1.例如


#include <stdio.h>
int main()
{
    float  x;
    int  i;
    x = 3.6;
    i = (int)x;
    printf("x = %f, i = %d", x, i);
    return 0;
}


结果输出


x = 3.600000, i = 3
• 1


另外,较高类型向较低类型转换时可能发生精度损失问题,上面例子也体现出来了。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
分布式分析型数据库
分布式分析型数据库
71 0
数据运算
算术运算 /* 算术运算*/ var num1 = 2; var num2 = 3; // 加法 var sum = num1 + num2; // 5 // 减法 var m...
649 0
《中国人工智能学会通讯》——12.46 分类型数据流聚类算法
本节书摘来自CCAI《中国人工智能学会通讯》一书中的第12章,第12.46节, 更多章节内容可以访问云栖社区“CCAI”公众号查看。
1376 0
小白学数据分析-----> ARPU之殇
昨天看了香橼对360的质疑的相关报道,并且也看到了多个企业的大佬站出来拿着数据在互联网各种解释,今天新浪上也多了一篇文章《页游自曝ARPU值背后 不重要因计算方式不同》http://biz.265g.com/1209/183961.html,看罢后,感慨万千,鄙人也做了不算长时间的游戏数据分析,对于这个ARPU认识也算有一些,这里我谈谈香橼对360的质疑的事。
1207 0
+关注
流楚丶格念
csdn平台优质创作者,51cto TOP博主,360图书馆科技博主,燕山大学目前大三在读,日拱一卒,功不唐捐,加油!!!
1010
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载