VC中求一个double数的平方用什么函数?

cctv512 2004-09-06 12:19:15
我用pow(dbValue, 2)会得到负值, 为何?

假设: double dbVal = 10.001, 求dbVal的平方。

谢谢!
...全文
898 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
pomelowu 2004-09-06
  • 打赏
  • 举报
回复
pow有double的重载的啊。不过平方的话自己乘一下就OK了,搞那么复杂干吗
Jimmy_Xia 2004-09-06
  • 打赏
  • 举报
回复
不会吧,楼主,我用pow好的
double f1 = 10.001;
double f2 = pow(f1,2);
得f2 = 100.020001
memory_xj 2004-09-06
  • 打赏
  • 举报
回复
double pow( double x, double y );

crushor 2004-09-06
  • 打赏
  • 举报
回复
哦,俺搭个车,求指数的方法是什么?
hellopine 2004-09-06
  • 打赏
  • 举报
回复
double dbVal2 = dbVal * dbVal;

这么怪的问题
DentistryDoctor 2004-09-06
  • 打赏
  • 举报
回复
?怪了。
zhaolaoxin 2004-09-06
  • 打赏
  • 举报
回复
double dbVal2 = dbVal * dbVal;
lifeequation 2004-09-06
  • 打赏
  • 举报
回复
哈哈,不会吧
与文本转化的子程序

声明如下:
void real2txt(char* text, float f, int width);
void real2txt(char* text, double f, int width);
void txt2real(char * text, float * f, int width);
void txt2real(char * text, double * f, int width);

编译及运行要求:支持 Intel 指令集,支持 C 与汇编混合编译。(如 Windows + VC)

缘起:我在 C 标准库里似乎没有找到文本转化为实的程序。因为要用,只好自己编了一个。为了方便起见,我在程序中没有牵涉到科学记法的处理。

效率:本着一切效率优先的原则,我用标准 C 与汇编语言 (Intel 8087 指令系统) 混合编程的方法。所有均进行过效率测试,结果如下:
->文本:12 ~ 24 字节文本的转化耗费 1 ~ 2 kClk
文本->实:12 ~ 32 字节文本的转化耗费 0.8 ~ 3 kClk
测试平台是 Intel 迅驰 3,单位 kClk 是一千个 CPU 指令周期。相比之下,C 标准库 pow(a, b) 的 CPU 耗费是 0.5 kClk,而 sprintf(***,"%f",***) 的系统耗费则是 14 kClk。

问题:把文本转化成实的问题似乎不是很大,但把实转化成文本问题就大了:8087 中没有反对指令!也就是说,pow(a, b) 必须自己算!我曾经使用过一种算法,即用多次开平方的方式来实现指运算,但效率只有 pow(a, b) 的六分之一。最后实在无奈,我只要还是使用 pow(a, b) 来算指。我甚至反汇编 pow(a, b),但没看懂算法,而且也没见代码中使用 fscale 这样的指令。
指令 fyl2x 的系统耗费一般在 0.180 kClk,相比之下反对实在太慢了。怎么快速地算反对这个问题我实在想不通,望大侠赐教!

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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