无法将类型“double”js隐式类型转换转换为“int”

2014年7月 Java大版内专家分月排行榜第二
2015年1月 Java大版内专家分月排行榜第三2014年8月 Java大版内专家分月排行榜第三
2015年5月 Java大版内专家分月排行榜第二2013年5月 Java大版内专家分月排行榜第二
2011年5月 Java大版内专家分月排行榜第三2011年1月 Java大版内专家分月排行榜第三
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。8种基本数据类型和运算(隐式转换和强制转换) - yshunb的博客 - CSDN博客
8种基本数据类型和运算(隐式转换和强制转换)
java中的8种基本数据类型:byte,short,char,int,long,float,double,boolean。
byte& 1 个字节,取值范围:-128~127,&&&&& 8 位;
short 2 个字节,取值范围:-2^15~2^15-1, 16 位;
char 2 个字节;
int 4 个字节,&& 取值范围:-2^31~2^31-1,&&&&32 位;
long 8 个字节,取值范围:-2^63~2^63 -1, &64 位;
float 4 个字节,取值范围:-3.403E38~3.403E38;
double 8 个字节,取值范围:-1.798E308~1.798E308;
boolean 1个字节 取值范围:true或者false。
public class Conversion {
public static void main(String[] args) {
int a = 5;
int b = 10;
double c = 5.0;
double d = 10.0;
int aa = b /
double bb = b /
int cc = (int) (d / c);
System.out.println(&aa=& + aa);
System.out.println(&bb=& + bb);
System.out.println(&cc=& + cc);
aa = b& /因为aa,a和b都是int类型不需要转换。
bb= b / a;因为bb是double类型的而a 和b 都是int类型的所以要把a / b 的结果转换成double类型的,
&&&&&&&&&&&&&&&&& 又因为int类型的容量没有double类型的大所以可以直接转换,为隐式转换。
cc = d / c;因为cc为int类型的而d和c都是double类型的,所以要把d / c的结果转换成int类型的,
&&&&&&&&&&&&&&&&& 又因为int类型的容量小所以要用强转。尤其要注意在强转的时候所有要转换的类型必须加上小括号。
1)容量小的转换成容量大的要进行隐式转换;
2)容量大的转换成容量小的要进行强制转换,要加上强制转换符;
3)byte,short,char之间不会互相转换,并且三者在计算的时候首先转换成int类型;
4)实数常量默认为double类型,整数常量默认为int类型。
我的热门文章c#中无法将”int “类型隐式转换为”string“如何解决?
c#中无法将”int “类型隐式转换为”string“如何解决?
09-10-24 &
确实是那样,你case那不能直接用整型的,因为你switch那用的变量是字符串的 所以case那也要用string 对于你这的,你是不是直接用输入的姓名来判断密码是否正确? 那你也可以这样, int myName = Int32.Parse(Console.ReadLine()); 其他不变,直接输入数字看看 不行,你程序有严重的问题···我直接给你修改了,你自己看看 using S using System.Collections.G using System.C using System.L using System.T namespace Temp { class Program { static void Main(string[] args) { bool myBool = do { //获取用户输入的姓名 Console.WriteLine(&请输入姓名:&); Console.WriteLine(&(1)张三(2)李四(3)王五&); int myName = Int32.Parse(Console.ReadLine()); //获取用户输入的密码 Console.WriteLine(&请输入密码:&); string myPassword = Console.ReadLine().Trim(); //根据用户的输入,提示不同的信息 switch (myName) { //当myName等于1时的处理 case 1: if (myPassword == &123456&) { Console.WriteLine(&密码正确&); } else { Console.WriteLine(&密码错误&); }
//当myName等于2时的处理 case 2: if (myPassword == & 234567&) { Console.WriteLine(&密码正确&); } else { Console.WriteLine(&密码错误&); }
//当myName等于3时的处理 case 3: if (myPassword == & 345678&) { Console.WriteLine(&密码正确&); } else { Console.WriteLine(&密码错误&); }
//当myName等于其他时的处理*/ default: Console.WriteLine(&查无此人&);
} } while (!myBool); //当输入为空时,提示退出信息 Console.WriteLine(&没输入有效的姓名,系统将退出……\n按回车键退出程序!&); Console.ReadLine(); } } }
请登录后再发表评论!00:29 提问
无法将类型“int”隐式转换为“byte”。
byte a = 1;
byte b = 2;
byte c = 3;
为什么最下面b,c变成int型了呢= =
按赞数排序
byte 表示一个字节,他的表示范围[-128 127],
byte a = 1;
byte b = 2;
byte c = 3;
都在这个范围之内,没有问题。
这里还有一个问题 就是我们写的整数,没有明确指出类型(比如说 byte b = 2;中的2) 系统默认是int的,
那么为什么不会编译出错呢,这里( 我认为 )这个整数如果没有超出范围(比如 byte b = 2;在范围之内),编译系统有个自动转换。
那么a = b + ;怎么又会编译出错呢,而且 a,b都是byte型的,这里java又有自己的一个机制,就是防止两个小数相加超出自己所表示的范围,把a ,b变成 int 在相加。相加后也是int 型(注意这里的int 和 上面说的没有指出类型的整数默认是int 有区别,这里相当于你自己实际定义的了 例 int c=0; 系统不会在将这种明确规定数据类型的数做出自动转换的。转换也要自己强制类型转换c=byte(a+b);
这样看来好像更符合防止两个数相加超出自己表示范围的机制)。
c=a+2;和c= a +情况差不多。
byte c=1+2;这个就好理解了,编译器是把 1+2 看作一个整体的 就是3了,3
不是 b c 变成int了 是b+c 是int的。byte的比int低。相加是会自动转换成int.
其他相关推荐

我要回帖

更多关于 int类型转换成double 的文章

 

随机推荐