黑马程序员技术交流社区

标题: 谁能帮我解释一下这个类型转换 [打印本页]

作者: 朱皓    时间: 2012-3-6 16:09
标题: 谁能帮我解释一下这个类型转换
float a=87.4f;
string str=a+"";

作者: kevindavid    时间: 2012-3-6 16:43
定义一个浮点数a=87.4,后面就是在控制台输出  将a+""赋值给str    但是我也有一点疑问【a+“”】 后面这两个符号代表什么如果说是连接的话为什么里面什么都没有,建议自己在编译一下看一下输出的是什么 。我还没下。,。,。,。,嘿嘿 :lol
作者: 蒙武辉    时间: 2012-3-6 18:41
float a=87.4f;定义哥浮点型变量
string str=a+""; 定义一个字符串变量,a+" "它会自动转变成字符串。

作者: 秦超    时间: 2012-3-6 19:24
这个是先定义了一个浮点型的变量a, 然后又定义了一个字符串变量 str
由于字符串的等级比浮点型的高(字符串的开辟的内存空间比浮点数的大),所以当虚拟机运算 a+""时,a 会自动提升为字符串.
扩展一下: byte-->short-->int-->long     
              float-->double
              从左到又,等级依次升高,可以自动转换,但是从右到左需要强制转换,但是会损失精度





作者: 泮和顺    时间: 2012-3-7 10:59
本帖最后由 泮和顺 于 2012-3-7 11:17 编辑

想错了竟然 只是把他直接当做字符串
作者: 张红    时间: 2012-4-26 19:14
float a=87.4f;
string str=a+"";
这是自动类型转换的问题。a 是 float的,但如果它和String作用的话+就变成了连字符,所以最后输出的就是String的了。
作者: 荣天    时间: 2012-5-8 23:13
float a=87.4f;  //   如果定义单精度87.4+f     不加f默认是double


string str=a+"";   //单精度a +“  ”  就是把a转变为字符串形式        

希望对哥们有帮助





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2