2-3选择题表示没看明白

2-3选择题表示没看明白

我用其他语言计算出来的 都是8.9  为什么这里面是8?是自动进行了强制类型转换吗?

可是我直接用 System.out.println(n%100/10); 得出的结果也是8呢?

正在回答

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

1回答

你好,定义为浮点型数据后,得到的结果就有小数点了。直接输出时,输出的数据类型会匹配n的数据类型,因此对输出结果取整得到8。祝学习愉快~

  • Max_wen 提问者 #1
    那么如何解释 double res = n%100/10; 得到的结果是 8.0? 我尝试使用 (double)n%100/10 才能得到8.9的结果 如果表达式: int n = 789; float f = 100.0f; 那么直接输出 n % f / 10; 得到的结果是 8.9 这个时候如何解释表达式的结果匹配的类型是float 而不是 int 呢? 从弱类型语言转过来 ,这一点有点懵, 麻烦老师解答 谢了
    2017-09-19 16:02:19
  • 一叶知秋519 回复 提问者 Max_wen #2
    double res = n%100/10;由于n是整数,此处进行的就是整数间的运算,然后将运算结果转化为浮点型,因此得到的是8.0;(double)n%100/10 这个呢,是先将n转化为double型,然后再进行运算,得到的数据也就是浮点型,而且运算就是普通运算,可以得到小数点,因此结果为8.9;当除数为浮点型时,此时的计算也就是普通计算,可以有小数点,得到的数据类型也是float型;输出时就输出的是float型数据。祝学习愉快~
    2017-09-19 16:18:37
  • Max_wen 提问者 #3
    非常感谢!
    2017-09-19 16:23:59
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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