为什么int转给double后小数点只显示一位0啊 而且这种运算赋值不能用int?

为什么int转给double后小数点只显示一位0啊 而且这种运算赋值不能用int?

public class MathDemo {

    public static void main(String[] args) {

//将变量m的初值赋值为10,变量n的初值赋值为5

    int m=10,n=5;

   

    //变量m的值加3,n的值加5

    

 m=m+3;

 n=n+5;

    //求m和n的平均值,并将结果存于变量p中

    

   int p=(m+n)/2;

  

double q=m*m*n*n;

    //将p和q的值打印输出

    System.out.println(p);

    System.out.println(q);


}

}


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
好帮手慕小班 2019-05-18 11:48:42

同学你好,double可以精确到16位, 并不是说,转换成double后后边就有16位,同学说的将23转为double后,23.0之后的所有0都是无效的数字,所以不显示哦!

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~


好帮手慕小班 2019-05-17 15:54:15

同学你好,1、因为double是浮点型数据,当小数点后没有数值时,会自动补位一个0,所以int转为double后,小数点后没有值,自动补位一个0!

2、根据题目要求,需要输出小数点后的以为数字,而int是整型数值,不可能输出带小数点的浮点型数据!,所以运算后的赋值变量建议使用double类型来获取。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~


  • 提问者 奥莉安鹏 #1
    double不是16 位数吗 为什么不是写到16位。。。 比如 23就转换成23.00000000000000
    2019-05-17 23:45:13
世界l你好 2019-05-17 12:00:47

加个强制转换成int,后面加(int)我只是新手

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师