字典翻译 问答 小学 数学 C#开三次方我用Math.Pow(8,1/3),结果等于1我再用doublea=8doubleb=1/3Math.Pow(a,b),结果仍然等于1.我用Math.Pow(8,0.333333333333333333),结果等于2.我想问一下,难道C#里面只能用第三种办法开三次方吗?这也
问题标题:
C#开三次方我用Math.Pow(8,1/3),结果等于1我再用doublea=8doubleb=1/3Math.Pow(a,b),结果仍然等于1.我用Math.Pow(8,0.333333333333333333),结果等于2.我想问一下,难道C#里面只能用第三种办法开三次方吗?这也
问题描述:

C#开三次方

我用Math.Pow(8,1/3),结果等于1

我再用

doublea=8

doubleb=1/3

Math.Pow(a,b),结果仍然等于1.

我用Math.Pow(8,0.333333333333333333),结果等于2.

我想问一下,难道C#里面只能用第三种办法开三次方吗?这也太那个了吧!

邓良才回答:
  首先Pow(doublea,doubleb)的2个参数都得是浮点数,这个你应该清楚了.   doubleb=1/3的计算过程是:   首先计算1/3=0   接下来b= (double)0 ,0隐式转换为double类型,但 b的结果还是0   (就是说先做除法运算,算术运算符的优先级比赋值运算高),   正确的做法是Pow(8,1f/3)   把1或3任意一个变成浮点数后再去做除法运算,这样一来1f/3的结果就不是0,而是0.3333333了
点击显示
数学推荐
热门数学推荐
  • 语文
  • 数学
  • 英语
  • 科学
  • 作文