科学计数法如何转换成普通的计数方式??

koji002 2007-07-16 03:13:32
如:str1="1.78e-002"

怎么才能将str2 = "0.0178"
...全文
4436 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
joyjjjz 2009-03-10
  • 打赏
  • 举报
回复
mark
emptyness 2007-07-17
  • 打赏
  • 举报
回复
。。。。天啊。。。我无语了。你运行了我的程序了么? 你没运行怎么知道我是随便乱扔的。
strtod是什么。。这个函数内部就是“diudiuqqqq是对的” 贴的代码。


strtod又是什么?只是取出字符串中的数字,能得到科学计数法的正确值吗?别告诉我你连科学计数法是什么都不知道,呵呵


晕死。。它这个函数是c\C++标准库的,它能进标准库,就肯定能得到科学计数法的正确值。上过初中的都知道科学计数法。

随便扔也得花百度搜索的时间是吧。我总没甩个避孕套广告吧。

好冤枉的感觉, 运行我写的代码 什么也不说了。


假设你的str="1.55e-2",
然后double f=strtod(str,NULL)(如果你保证str写法正确),
char s[20];
sprintf(s,"%f",(float )f);
// s就是你想要的字符串.
printf(s);
这些函数包含stdlib就可以..不需要MFC.
koji002 2007-07-17
  • 打赏
  • 举报
回复
_gcvt是将浮点型转换成字符串 我现在得到的只有一个字符串,并且我要转换的是个科学计数法不是浮点型的数字

strtod又是什么?只是取出字符串中的数字,能得到科学计数法的正确值吗?别告诉我你连科学计数法是什么都不知道,呵呵

随便扔点东西上来就想拿分的人。我一分都不会给的

diudiuqqqq是对的
arrowcy 2007-07-17
  • 打赏
  • 举报
回复
既然楼主认为我们的想法是错的,就说说哪里错了,没有满足那个要求,要不然别人无法继续帮你。。。
emptyness 2007-07-16
  • 打赏
  • 举报
回复
帮你百度了下 字符串转换
贴几个网, 自己选吧;
http://blog.sina.com.cn/u/58d95050010009dy
http://krings.itpub.net/
.........

atof(将字符串转换成浮点型数)
atoi(将字符串转换成整型数)
atol(将字符串转换成长整型数)
ecvt(将浮点型数转换成字符串,取四舍五入)
fcvt(将浮点型数转换为字符串,取四舍五入)
gcvt(将浮点型数转换为字符串,取四舍五入)
strtod(将字符串转换成浮点型数)
strtol(将字符串转换成长整型数)
strtoul(将字符串转换成无符号长整型数)
toascii(将整型数转换成合法的ASCII码字符)
tolower(将大写字母转换成小写字母)
toupper(将小写字母转换成大写字母)
emptyness 2007-07-16
  • 打赏
  • 举报
回复
不好意思。。你们的想法都是错的


???
楼上几个不是列出函数了么??什么叫想法错了?你想自己实现?那看看楼上的代码咯。
我也说一次函数吧。

假设你的str="1.55e-2",
然后double f=strtod(str,NULL)(如果你保证str写法正确),
char s[20];
sprintf(s,"%f",(float )f);
// s就是你想要的字符串.
printf(s);
这些函数包含stdlib就可以..不需要MFC.
diudiuqqqq 2007-07-16
  • 打赏
  • 举报
回复
CString CGsCardCtrl::MatlabToFloat(CString strVal)
{
int nIndexE = 0; //'e'所在位置
float lSvl = 0; //'e'左侧的数值
int nCount = 0; //'e'右侧的数值
CString strReturn = "";

nIndexE = strVal.Find('e');
lSvl = atof(strVal.Left(nIndexE));
nCount = atoi(strVal.Mid(nIndexE + 2, strVal.GetLength()));

if("-" == strVal.Mid(nIndexE + 1, 1))
{
lSvl = lSvl / pow(10, nCount);
}
else
{
lSvl = lSvl * pow(10, nCount);
}

strReturn.Format("%f", lSvl);
return strReturn;
}
koji002 2007-07-16
  • 打赏
  • 举报
回复
不好意思。。你们的想法都是错的
lzg0001 2007-07-16
  • 打赏
  • 举报
回复
字符串->数值->字符串
koji002 2007-07-16
  • 打赏
  • 举报
回复
字符串“1.78e-002”通过什么方法能得到字符串“0.0178”
koji002 2007-07-16
  • 打赏
  • 举报
回复
我的意思是要把"1.78e-002"转换成"0.0178"
arrowcy 2007-07-16
  • 打赏
  • 举报
回复
先要用_gcvt等函数转换成数字,然后再用楼上的format转换成字符串
xwdd129 2007-07-16
  • 打赏
  • 举报
回复
哦,有误!

str.Format("%e",d); -------结果为"1.78e-002"
str.Format("%f",d); -------结果为"0.0178"
xwdd129 2007-07-16
  • 打赏
  • 举报
回复
double d = 0.0178;
CString str;
str.Format("%e",d);

16,472

社区成员

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

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

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