none
Math.Pow 用法疑问 RRS feed

  • 问题

  • 以下两段代码的执行结果不同,是有什么问题吗?

    Math.Pow(x,0.5);
    Math.pow(x,1/2);

    在运行的时候,第二段代码给我的反馈 永远是1,x都取得正整数

    后又调整为

    Math.Pow(x,(1/2));

    依然有问题

    我是哪里不对吗,还是说pow的参数只能是一个值,不能是表达式?但我看些例子里也出现了

    Math.Pow(x,i-1);

    之类的例子


    爱咋咋地


    <embed height="0" id="xunlei_com_thunder_helper_plugin_d462f475-c18e-46be-bd10-327458d045bd" type="application/thunder_download_plugin" width="0" />
    • 已编辑 Lee.Vincent 2017年11月26日 13:39 修改版面
    2017年11月26日 13:36

答案

  • 你好

    1/2 因为是两个整型在做出发,所以结果为0. 而 Math.Pow(x,0) 结果肯定是 1. 如果你想得到 0.5,可以用 1.0/2.0

    你试试 Math.Pow(x, 1.0/2.0) 这样就和 Math.Pow(x, 0.5) 结果一致了


    希望我的答案能帮助更多的人。
    博客地址: http://www.cnblogs.com/shaomeng

    2017年11月26日 13:56

全部回复

  • 你好

    1/2 因为是两个整型在做出发,所以结果为0. 而 Math.Pow(x,0) 结果肯定是 1. 如果你想得到 0.5,可以用 1.0/2.0

    你试试 Math.Pow(x, 1.0/2.0) 这样就和 Math.Pow(x, 0.5) 结果一致了


    希望我的答案能帮助更多的人。
    博客地址: http://www.cnblogs.com/shaomeng

    2017年11月26日 13:56
  • 原理懂了,弱弱在多问一句。在Math.Pow(x,i-1)这样的例子里,如果i被定义为int,是不是结果依然不对。Math的方法不会对参数进行形式转换吗?

    爱咋咋地

    2017年11月27日 5:14
  • Hi,

    感谢你在MSDN论坛发帖。

    根据MSDN论坛的规则,不能在一个帖子下面追问另一个问题,你可以重新发帖。 这样一个帖子解决一个问题,也可以帮助他人快速找到答案。

    Best Regards,

    Hart


    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2017年11月27日 5:47
    版主