关于pow和10L

gameice 2009-12-04 11:33:11
是这样的有这么一个函数,如下所示:



LONG CMoneyControl::GetMoney()
{
LONG lMoney=0L;
for (LONG i=0;i<CountArray(m_lMoneyCell);i++)
{
lMoney+=m_lMoneyCell[i]*(LONG)pow(10L,i);
}
return lMoney;
}




因为我改用了vs2008,好似在9.0的math.h库里需要对pow的第一个参数明确调用.也就是说我必须给第一个参数一个类型.小弟年轻...对10L的理解比较模糊(汗...基础很差).

我现在做了对上面的代码做了如下改动:





LONG CMoneyControl::GetMoney()
{
LONG lMoney=0L;
for (LONG i=0;i<CountArray(m_lMoneyCell);i++)
{
for (int nDeleteL = 0 ;nDeleteL < 10; nDeleteL++)
{
lMoney+=m_lMoneyCell[i]*(LONG)pow((DOUBLE)(10*nDeleteL),i);
}

}
return lMoney;
}





我想知道我这样改合适吗? 会不会影响原应该有的功能? 如果不合适,怎么改比较恰当?



谢谢 ^_^







...全文
139 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
gameice 2009-12-04
  • 打赏
  • 举报
回复
pow只支持 float或double吧? 哪个更合适?
gameice 2009-12-04
  • 打赏
  • 举报
回复
那long 转 int 是不是更合适?
张赐 2009-12-04
  • 打赏
  • 举报
回复
10L就表示10是个长整型的10,就像浮点数0.5可以写成 .5f一样
gameice 2009-12-04
  • 打赏
  • 举报
回复
0.0 额 (DOUBLE)i 不错 呵呵 我以为是指的前面的参数调用不明确 谢谢两位哈 :)
xingzhe2001 2009-12-04
  • 打赏
  • 举报
回复
哦, 看了一下,pow只有浮点运算的,lMoney+=m_lMoneyCell[i]*(LONG)pow(10.0,(DOUBLE)i);这样可以么?
gameice 2009-12-04
  • 打赏
  • 举报
回复
嗯 是提示对pow的调用不明确

xingzhe2001 2009-12-04
  • 打赏
  • 举报
回复
整型运算比浮点快,
lMoney+=m_lMoneyCell[i]*(LONG)pow(10L,i);这句不能编译?

8,325

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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