?好像是一个比较幼稚的问题,大家别笑……

onevsone 2008-03-28 06:59:46
在c#2005中,程序如下
double temp;
temp=297/(486/20);
结果是12.0,和计算器算出来的12.22222……差的比较远
还有
如果改成
temp=297/486*20;
结果就成0.0
我是无语了,也不知道错在哪里
哪位大虾帮帮忙,谢谢
...全文
46 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ILOVEYOULOVEME 2008-03-28
  • 打赏
  • 举报
回复
我是一个初学者,但我觉得是类型转换的问题!!
297 486 20 都是int 型的!!
486/20=24 297/24=12 double(12)=12.0
297/486=0 0*20=0 double(0)=0.0
我觉得是这样的!!
呵呵。
jinjazz 2008-03-28
  • 打赏
  • 举报
回复
是的((double)a)/b*c
LockMyeye 2008-03-28
  • 打赏
  • 举报
回复
改为
temp=297/(486/20.0);
temp=297/486*20.0;


示例
复制代码
// cs_operator_division.cs
using System;
class MainClass
{
static void Main()
{
Console.WriteLine(-5/2);
Console.WriteLine(-5.0/2);
}
}


输出

-2
-2.5

onevsone 2008-03-28
  • 打赏
  • 举报
回复
如果不是直接的数字呢
比方说
int a,b,c;
double temp = a/b*c;
是不是要先转化为double?
jinjazz 2008-03-28
  • 打赏
  • 举报
回复
double temp = 297d / (486d / 20);

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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