为了账号安全,请及时绑定邮箱和手机立即绑定

int可以转为float吗

public class HelloWorld{
    public static void main(String[] args) {
        double avg1=78.5;
        int rise=5;
        float avg2=avg1+rise;
        System.out.println("考试平均分:"+avg1);
        System.out.println("调整后的平均分:"+avg2);
    }

为啥这样就报错 但是把第五行float改成double就可以

正在回答

1 回答

float4个字节

double8个字节

 float avg2=avg1+rise;中avg1是double

装不下。 目标类型大于源类型,如 double 类型长度为 8 字节, int 类型为 4 字节,因此 double 类型的变量里直接可以存放 int 类型的数据,但反过来就不可以了

float avg2=(float)avg1+rise;这样就可以了

另外,兄弟你数数你的大括号是成对的吗?


5 回复 有任何疑惑可以回复我~
#1

慕数据6005589 提问者

我复制的时候最后一个括号没连进来
2018-06-18 回复 有任何疑惑可以回复我~
#2

慕数据6005589 提问者

那我把第三行double改成float为啥也报错?谢谢
2018-06-18 回复 有任何疑惑可以回复我~
#3

慕数据6005589 提问者

78.5去掉0.5就可以用float,是因为78.5这种常量缺省就是double吗? 我用float avg1 = (float) 78.5;强制转换就可以了
2018-06-18 回复 有任何疑惑可以回复我~
#4

慕数据6005589 提问者

谢谢,有一个switch的问题麻烦看一下好不
2018-06-18 回复 有任何疑惑可以回复我~
#5

慕田峪9401090 回复 慕数据6005589 提问者

float avg1=78.5f;
2018-06-19 回复 有任何疑惑可以回复我~
#6

慕田峪9401090 回复 慕数据6005589 提问者

啊?switch?哪呢?
2018-06-19 回复 有任何疑惑可以回复我~
#7

qq_龙之子_1 回复 慕数据6005589 提问者

float的字符不可以有小数点的
2018-07-12 回复 有任何疑惑可以回复我~
#8

人称大帅逼 回复 慕数据6005589 提问者

如果要定义 78.5 为 float 类型,那么在78.5后面就要加一个f,或者在78.5前面加上(float)。如果不声明,默认小数为double类型,所以如果要用float的话,必须进行强转。例如:float a=1.3; 会编译报错,正确的写法 float a = (float)1.3;或者float a = 1.3f;
2018-09-01 回复 有任何疑惑可以回复我~
查看5条回复

举报

0/150
提交
取消

int可以转为float吗

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信