Math.Pow的问题

myf213 2007-09-10 02:08:24
发现了一个奇怪的现象,MessageBox.Show(Math.Pow(16,0.5).ToString())的结果为4,而MessageBox.Show(Math.Pow(16,1/2).ToString()),MessageBox.Show(Math.Pow(16,(1/2)).ToString()),MessageBox.Show(Math.Pow(16,Convert.ToDouble(1/2)).ToString())结果均为1,不晓得是怎么回事,有高手能够讲解一下么?谢谢!
...全文
257 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
myf213 2007-09-10
  • 打赏
  • 举报
回复
十分感谢,第一次尝试使用vs.net,没想到还有这个门道,害的我加了好长时间“.0”:)
ezhuyin 2007-09-10
  • 打赏
  • 举报
回复
同意楼上+1

请用 MessageBox.Show(Math.Pow(16,1.0/2.0).ToString())
viena 2007-09-10
  • 打赏
  • 举报
回复
改为
1.0/2
1f/2
1d/2
都可以
viena 2007-09-10
  • 打赏
  • 举报
回复
整数运算结果为整数,1/2的值为0,即使你再转为double它也是0

110,534

社区成员

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

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

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