分数OutPut中的问题

时间:2011-09-23 17:16:51

标签: c#

  

可能重复:
  Divide problem

为什么c#将此代码的输出显示为0 ??

 MessageBox.Show((5/6).ToString);

5 个答案:

答案 0 :(得分:6)

因为除非您指定希望操作导致Double,否则操作会导致Integer,因此小数结果会被删除,而您只剩下整数0

答案 1 :(得分:3)

它将整数除以整数并返回一个整数,我相信它总是返回最低值。试试Messagebox.Show((5.0/6.0).ToString());

答案 2 :(得分:3)

5/6基本上是整数除法,结果是0。两个操作数的类型都是int

我认为你想要的是:5.0/6.0

事实上,5.0/6.05/6.05.0/6,都会给出相同的结果。也就是说,只要一个操作数是double,它就是双除法,结果的类型也是double

答案 3 :(得分:2)

因为你正在进行整数除法。如果你想要非整数除法,你应该做类似5 / 6d

的事情

答案 4 :(得分:2)

编译器假定数字是Int,它必须是整数。因此,它正在回答这个问题。要返回小数答案,请使用:

MessageBox.Show((5d/6d).ToString());