A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘鹏军 中级黑马   /  2014-8-4 13:34  /  4614 人查看  /  18 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 刘鹏军 于 2014-8-5 12:34 编辑

double和int之间的一些关系我模模糊糊的有点,谁可以给具体解答下呢。感谢

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

18 个回复

正序浏览
路过学习。
回复 使用道具 举报
马振伟 发表于 2014-8-4 15:43
所有的int 类型都可以默认的暗转成doubledouble精度高
int只能是整数
double  可以是小数

加油,仔细回复,使得自己回忆以前的知识点
回复 使用道具 举报
简单的问题,回答了好多,不错
回复 使用道具 举报
路过看看 大家说的都挺好的啊
回复 使用道具 举报
double存小数。int存证整数
回复 使用道具 举报
int整型: .net中特指Int32为32位长度符号整型变量

float:单精度浮点数32位长度1位符号位8位指数位与23位数据位 .net中又称为Single

double:64位长度双精度浮点数1位符号位11位指数位52位数据位

它们互相关系就:int可以稳式转换成float和double,float只能强制转换成int但可以隐式转换成double,double只能强制转换成float和int

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
double:双精度,浮点型,其实就是用来表示带小数的数字,比如5.5555; int:整形,无小数点,只能表示5,不能表示5.0;
回复 使用道具 举报
梧桐树下 来自手机 中级黑马 2014-8-5 00:10:45
12#
数据类型吗
回复 使用道具 举报
本帖最后由 FrancisTan 于 2014-8-4 23:43 编辑

楼主应该是问的它们之间的类型转换吧!详细的解释涉及到底层位操作,我自己也不是很明白,
简单来说:
首先,double在计算机中是占八个字节,而int只占4个字节,显然int的存储空间比double要小,所以在进行类型转换时,会涉及到空间的增大与缩小。
当int转成double时,由于double比int空间大,转换后不会丢失数据,所以它们之间的转换是隐式的,如:
double d = 13;
而当double转成int时,如上所述,会缩小存储空间,转换后会丢失4个字节的数据,所以在C#中不存在这样的隐式转换,而需要我们进行强制转换,如:
double d = 13.13;
int i = (int)d;

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
int和double是计算机存的长度不同,int只能是整数,double可以是小数
回复 使用道具 举报
路过学习!
回复 使用道具 举报
本帖最后由 马振伟 于 2014-8-4 15:45 编辑

所有的int 类型都可以默认的暗转成doubledouble精度高
int只能是整数
double  可以是小数
许老师的解答还是那么严谨公式化!!


我还是来个简陋的白话基础版

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
1.从int类型到double类型属于隐式数值转换;
2.从double到int类型属于显示数值转换;
回复 使用道具 举报
刘鹏军 发表于 2014-8-4 14:29
我是说他们中间的类型转换,有点绕感觉,不是明白的很清楚

楼上如果还不清楚,你可以进入vs写出double或者int,把鼠标放在上面按F1,打开帮助,看2个类型的大小范围,实际上double是包含int的。
回复 使用道具 举报
double是小数类型的数字类型,而int是整数类型的数字类型;
两种类型可以发生自动类型转换。但需要达成一定的条件; 发生自动转换数据类型的条件如下:
  1)参与运算的2个数据必须相兼容(比如double和int都是数字类型的,)
  2)必须一边的数据类型表示范围小(int),一边的表示范围大(double),并且把小的转大的不丢失精度。
  3)参与运算(算数运算和赋值运算)的操作数和结果类型必须一致,当不一致时,满足下面条件时,系统自动完成类型转换
     两种类型兼容:
         例如:int和double兼容
         目标类型大于源类型
         例如:double>int
  4)在自动转换中,转换是不会丢失精度的,如果丢失精度,那么这个转换肯定不会自动完成。经常见到的就是,参与运算的两个操作数,一个是int,一个是double,那么int类型会自动转换成double类型。
如果一个操作数为double型,则整个表达式的运算结果为double类型。
当需要丢失精度的转换时(如double3.14int3的转换),系统是不会帮我们自动转换的;
需要我们手动写代码完成转换,转换的语法为:(数据类型名)待转换的值。

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
我是说他们中间的类型转换,有点绕感觉,不是明白的很清楚
回复 使用道具 举报
1.数学中的实数不仅包括整数,而且包括小数。
2.小数在C#中采用两种数据类型来表示;
3.单精度(float)和双精度(double)。
4.它们的差别在于取值范围和精度不同。
5.计算机对浮点数的运算速度大大低于对整数的运算。
6. 在对精度要求不是很高的浮点数计算中,程序员可以采用float型,而采用double型获得的结果更为精确。
7.C#中有九种整数类型:sbyte,byte,short,ushort,int,uint,long,ulong。
8.这九种数据类型的划分依据是根据该类型的变量在内存中所占用的位数。
9.位数的概念是按照2的指数幂来定义的,比如说8位整数,则它可以表示2的8次方个数值,即256。

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报 1 0
double类型与int类型都是指数据类型,不同的是两者的值范围不一样和double表示小数类型,而int表示整形
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马