为什么 double x = 1/26; x=0?????

angeletuk 2005-03-09 02:34:26
1/26 应该约等於0.038,为什么等於 0?怎样才能得到0.038?
...全文
172 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
dongyang3 2005-03-09
  • 打赏
  • 举报
回复
你应该将1和26设为double而不是int
zxmzfbdc 2005-03-09
  • 打赏
  • 举报
回复
当两个整型运算时,运算的结果也是整型,当整型数和一个浮点数运算时,结果才是浮点数,
(100/26)*0.01先计算100/26,得到一个整型数3,然后再乘以浮点数0.01,结果是0.03。
rower203 2005-03-09
  • 打赏
  • 举报
回复
你可以这样写的1/26.0或者1.0/26或者1.0/26.0就可以了
tim90 2005-03-09
  • 打赏
  • 举报
回复
类型的系统默认转换是由高到低的
zj_pht 2005-03-09
  • 打赏
  • 举报
回复
你可以这样写的1/26.0或者1.0/26或者1.0/26.0就可以了
angeletuk 2005-03-09
  • 打赏
  • 举报
回复
批评的好,谢谢大家,给大家丢脸了,基础太差。
cuilichen 2005-03-09
  • 打赏
  • 举报
回复
First: 1/26=0
Second: translate int "0" to double "0"
So: the result is 0
jnzsk 2005-03-09
  • 打赏
  • 举报
回复
对了!就是等于零,你不够1,
wenchaohu213 2005-03-09
  • 打赏
  • 举报
回复
改为double或者float类型就可以转换过来了.
zealVampire 2005-03-09
  • 打赏
  • 举报
回复
整除结果不够1当然是0了。
congbailing_914 2005-03-09
  • 打赏
  • 举报
回复
因为你没有设定你的“1”和“26”是double型!
所以系统默认的是int型!因此1/26的结果也是int型,即为0
你只要把他们都设定为double型就可以了!
程序如下:
public class ggg
{
public static void main (String [] args)
{
double i=1D;
double j=26D;
double k=i/j;
System.out.println(k);
}
}
angeletuk 2005-03-09
  • 打赏
  • 举报
回复
(100/26)*0.01 is ok la:)
zhang21cnboy 2005-03-09
  • 打赏
  • 举报
回复
回去好好学习java基础,包括运算符!

否则别出来给程序员丢脸!

程序员的薪水越来越低,就是你们这样的人给弄得!

哈哈,开个玩笑,不要生气!
willytiger 2005-03-09
  • 打赏
  • 举报
回复
我看用这个也行double d=1.0/26.0;也行!

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧