黑马程序员技术交流社区
标题:
关于数据类型的问题
[打印本页]
作者:
陈世伟
时间:
2012-4-4 09:14
标题:
关于数据类型的问题
int a = 10,b=3;
double quo = a / b;
console.writeline(quo);
quo是double类型的,为什么运行的结果是3,而不是3.0呢?
作者:
霍世勇
时间:
2012-4-4 09:43
因为你参与运算的数据类型都是整形的,所以运算结果也是整形的数!
作者:
刘冬晓
时间:
2012-4-4 10:15
关于double中尾随零问题,因为浮点数据类型没有尾随零字符的任何内部表示形式。 例如,这些数据类型不区分 4.2000 和 4.2。因此,在显示或输出浮点值时,所以尾随零字符不会出现。
作者:
徐瑞
时间:
2012-4-4 10:17
int a = 10,b=3;
double quo = a / b;
console.writeline(quo);
算数表达式两边参与运算的都是int类型,所以得到的结果也是int类型
double quo = a / b;
想得到double类型
double quo = a*1.0 / b;多种方法
作者:
韩艳君
时间:
2012-4-4 10:24
a和b都是整型变量,在计算时,两边都是整型,那么计算结果就是整型
作者:
张世豪
时间:
2012-4-4 10:49
在java中可能是3.0,但是在c#中它后面的0被默认去掉了,例如:把你的代码改为:
int i = 7;
int j = 2;
double a =3.0;
Console.WriteLine(a);
Console.ReadKey();
它输出的还是3,如果把double a=3.0,改为3.50的话那么a输出的就是3.5跟前面的int型没关系。
作者:
曾驰文
时间:
2012-4-4 10:54
int a = 10,b=3;
double quo =(double) a / b;
console.writeline(quo);
作者:
郑帅
时间:
2012-4-4 11:30
隐式转换了。
作者:
李志祥
时间:
2012-4-4 12:01
int a = 10,b=3,a,b都是整型,结果也会是整型的
作者:
黄雄斌
时间:
2012-4-4 12:15
算数表达式两边参与运算的都是int类型,所以得到的结果也是int类型
如果将double quo = a / b改成double quo =(double) a / b;
得到的结果也是3.33333333333333并不是3.0
作者:
杨伟芬
时间:
2012-4-4 16:53
qvo 是double型的 qvo=3.0 在快速监视中可以看到 计算的数据类型和结果是相同的
作者:
郭耀强
时间:
2012-4-6 16:44
比如说你定义的一个double 类型 double a =10,这样是对的。
你在计算的时候a和b都是整数类型,两者相处后结果肯定也是int类型,运算后的结果是给c赋值了,并不是把运算的结果进行转换,所以说还是3,如果你想变成带有小数部分的,那你就可以把计算的结果就行转换double c =(double)10/3,这样的话计算的结果就会是3.33333333333333了。这样说你明白了么?
作者:
★心秒★
时间:
2012-4-7 13:27
看看我给你的图!! 或许你就知道了……
aaa.jpg
(32.51 KB, 下载次数: 137)
下载附件
2012-4-7 13:23 上传
az.jpg
(37.11 KB, 下载次数: 130)
下载附件
2012-4-7 13:27 上传
作者:
黄国钢
时间:
2012-4-7 20:52
因为定义的变量a和b都是int类型的,在计算a/b时,这个表达式的值就为3,这个时候还是int类型,然后赋给double类型的变量quo,就会进行隐式转换,
值3的类型就会转换成double类型,输出的3是double类型,只是看起来是int类型。
假如改成这样:double quo = (a*1.0)/b,等号右边的int类型就会提升为double类型,这样表达式的值为3.33333333333333而不是3。
作者:
刘真
时间:
2012-4-7 22:09
因为参与运算的两边元素都是整形,所以得到得到的结果也是整形3
int类型向double类型转换时发生自动转换不丢失精度
相当于对double类型的quo直接赋值一个整形数据3
作者:
Household
时间:
2013-12-8 21:00
注释:
int a = 10,b=3; //定义两整形的常量a,b;
double quo = a / b; //double quo定义的事quo的数据类型为Double型,并此语句只是两整数运算,结果必然是int,若非要得到3.0,即下面执行语句可执行成功:
public static String getFormatDouble(double quo)
{
DecimalFormat df=new DecimalFormat("0.0");
return df.format(quo);
}
作者:
王新年
时间:
2014-1-6 11:31
原因是 a和b都是int型的,所以a/b的结果也是int型的,然后把一个整形的结果赋值给double型,所以quo的值为3
作者:
monkey
时间:
2014-2-13 15:37
先执行int类型的除法运算a/b,其值为3,再把int类型转为double类型,其值quo为3.0,输出时,在标准输出流中为3
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2