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

本文介绍了如何将科学计数法转换为普通的十进制计数方式,涉及浮点数处理和计算方法,适用于数学、编程等领域。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://topic.csdn.net/u/20070716/15/23acde59-75ad-47c0-bc74-59e635427fcb.html

发表于:2007-07-16 15:13:32
如:str1= "1.78e-002 "

怎么才能将str2   =   "0.0178 "
回复次数: 14

 

#1楼 得分:0 回复于:2007-07-16 15:37:30
double   d   =   0.0178;
CString   str;
str.Format( "%e ",d);
#2楼 得分:0 回复于:2007-07-16 15:39:56
哦,有误!

str.Format( "%e ",d);     -------结果为 "1.78e-002 "
str.Format( "%f ",d);     -------结果为 "0.0178 "
#3楼 得分:0 回复于:2007-07-16 15:41:43
先要用_gcvt等函数转换成数字,然后再用楼上的format转换成字符串
#4楼 得分:0 回复于:2007-07-16 15:42:24
我的意思是要把 "1.78e-002 "转换成 "0.0178 "
#5楼 得分:0 回复于:2007-07-16 15:46:00
字符串“1.78e-002”通过什么方法能得到字符串“0.0178”
  • lzg0001用户头像
  • lzg0001
  • (铁杆 C/C++er !)
  • 等 级:
#6楼 得分:0 回复于:2007-07-16 15:54:08
字符串-> 数值-> 字符串
#7楼 得分:0 回复于:2007-07-16 16:13:51
不好意思。。你们的想法都是错的
  • diudiuqqqq用户头像
  • diudiuqqqq
  • (http://blog.sin)
  • 等 级:
#8楼 得分:50 回复于:2007-07-16 17:46:14
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;
}
#9楼 得分:0 回复于:2007-07-16 18:33:58
不好意思。。你们的想法都是错的


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

假设你的str= "1.55e-2 ",  
然后double   f=strtod(str,NULL)(如果你保证str写法正确),
char   s[20];  
sprintf(s, "%f ",(float   )f);  
//     s就是你想要的字符串.
printf(s);
这些函数包含stdlib就可以..不需要MFC.
#10楼 得分:0 回复于:2007-07-16 18:40:03
帮你百度了下     字符串转换    
贴几个网,   自己选吧;
http://blog.sina.com.cn/u/58d95050010009dy
http://krings.itpub.net/
.........

atof(将字符串转换成浮点型数)  
atoi(将字符串转换成整型数)  
atol(将字符串转换成长整型数)  
ecvt(将浮点型数转换成字符串,取四舍五入)  
fcvt(将浮点型数转换为字符串,取四舍五入)  
gcvt(将浮点型数转换为字符串,取四舍五入)  
strtod(将字符串转换成浮点型数)  
strtol(将字符串转换成长整型数)  
strtoul(将字符串转换成无符号长整型数)  
toascii(将整型数转换成合法的ASCII码字符)  
tolower(将大写字母转换成小写字母)  
toupper(将小写字母转换成大写字母)  
#11楼 得分:0 回复于:2007-07-17 01:50:26
既然楼主认为我们的想法是错的,就说说哪里错了,没有满足那个要求,要不然别人无法继续帮你。。。
#12楼 得分:0 回复于:2007-07-17 09:42:22
_gcvt是将浮点型转换成字符串   我现在得到的只有一个字符串,并且我要转换的是个科学计数法不是浮点型的数字

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

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

diudiuqqqq是对的
#13楼 得分:0 回复于:2007-07-17 10:55:45
。。。。天啊。。。我无语了。你运行了我的程序了么?   你没运行怎么知道我是随便乱扔的。
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.
#14楼 得分:0 回复于:2009-03-10 13:30:33
mark
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值