日期:2014-05-19  浏览次数:21086 次

1/5为什么会等于0?而不是0.2?郁闷
decimal   days;
  days   =   1   /   5;
  days等于0,而不是0.2,这是为什么?
我把decimal   换成float,double都是0,我也没有什么int,为什么不是0.2?急呀

------解决方案--------------------
不会吧
------解决方案--------------------
days = (double)1 / 5;
------解决方案--------------------
1/5 系统自动认为是整数除整数等于整数的,改为1.0/5 或 1/5.0 或 1.0/5.0
------解决方案--------------------
在大多数编程语言中

整数 / 整数 = 整数
------解决方案--------------------
1/5 这样的话是整除阿
1后面加个0
------解决方案--------------------
还有这事啊..
------解决方案--------------------
把1强制转换一下,或者写1.0
------解决方案--------------------
汗....看看自动转型方面的东西吧....int和int运算结果还是int
------解决方案--------------------
1m / 5

整型除法这样设定是很有意义的,程序设设计语言不是用来写数学表达式的,当然可以用程序来解析数学表达式运算结果。
------解决方案--------------------
楼上们都说,在重复便吧
1/5为整除,不会得出小数,分母或分子换一个为decimal或double型即可,也可以在表达式前面装换

------解决方案--------------------
up
------解决方案--------------------
n多正解!
------解决方案--------------------
1 / 5 是一个int的先给强转了

正解啊
------解决方案--------------------
所有高级语言都这样
------解决方案--------------------
用这个/运算符得到的结果就是一个整数,所以当然不是浮点数了
你可以这样:days = 1.0 / 5.0,就得到你想要的结果了,也就是0.2了,就说这些吧
------解决方案--------------------
days =1/5*0.1
------解决方案--------------------
你遭遇潜规则了
------解决方案--------------------
试都试不出来,LZ机子问题吧!
------解决方案--------------------
1.0/5.0
------解决方案--------------------
khler(三人行,岂无师焉) ( ) 信誉:100 Blog 加为好友 2007-05-14 17:58:17 得分: 0


你遭遇潜规则了



^_^ 说的精到