怎样把"12.000"或"12.400",换成"12"和"12.5"? sorry!写错了,我是想把"0"去掉,只留下"12"和"12.4". 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 当我不知该用哪个函数的时候,通常是自已写一个://------------------------------------------------------------------------// 函数名称; TrimRZero// 功能说明: 剪去数字字符串右边的无效0,如"3.2000"剪为"3.2" // 参数说明: str 要修剪的字符串// 返回值: 修剪后的字符串//------------------------------------------------------------------------CString TrimRZero(const char* str){ int len; int resultStrLen; resultStrLen=len=strlen(str); char m_chTemp; while(len>=1){ m_chTemp=str[len-1]; if(m_chTemp=='0') resultStrLen--; else{ //只要本字符不是"0",就不再往前检查 if(m_chTemp=='.') //如果是".",则去掉它,以保证返回值的最后一个字符不是"." resultStrLen--; break; } len--; }///End of while //如果str="0",那么resultStrlen就会是0,把它设成1 if (resultStrLen< 1)resultStrLen=1; CString res; res=str; return res.Left (resultStrLen);} 可以利用函数 char *_gcvt( double value, int digits, char *buffer );Trailing zeros may be suppressed in the conversion.所以可以先把串“12.8952000”转换成double型,再调用_gcvt函数,将double型转换成字符串时去零的特点,就可以实现截掉有效数字后的零,程序代码如下:#include <stdlib.h>char num[]="12.5400";double aa= atof( num ); ////////字符串变成double数据char aa[20];_gcvt( a, sizeof(a), aa);///////数据转换成字符串printf("%s %f\n",num,a);////////输出结果printf("%s %s\n",num,aa); WinCE6.0 下CommandLineToArgv返回参数错误 疯狂的页面错误,结果会是什么? VC2008怎样做DDX CEdit 回车响应的问题(PreTranslateMessage),知道的进来! 最快的读出文件配置和最高效率的查找字符串!!! 散分 祝贺找到了第一份工作~~~~~ 大家不要客气 人者有份!!!!!!!!! 请问什么是累积直方图? 再来请教 COM/DCOM可以调用其他的dll文件吗? 请教FTP的问题? 有个好简单地送分问题给大家!我学VC半年,现在想学BCB,DELPHI,你们说哪个好? socket的侦听
// 函数名称; TrimRZero
// 功能说明: 剪去数字字符串右边的无效0,如"3.2000"剪为"3.2"
// 参数说明: str 要修剪的字符串
// 返回值: 修剪后的字符串
//------------------------------------------------------------------------
CString TrimRZero(const char* str)
{
int len;
int resultStrLen;
resultStrLen=len=strlen(str);
char m_chTemp;
while(len>=1){
m_chTemp=str[len-1];
if(m_chTemp=='0')
resultStrLen--;
else{ //只要本字符不是"0",就不再往前检查
if(m_chTemp=='.') //如果是".",则去掉它,以保证返回值的最后一个字符不是"."
resultStrLen--;
break;
}
len--;
}///End of while
//如果str="0",那么resultStrlen就会是0,把它设成1
if (resultStrLen< 1)resultStrLen=1;
CString res;
res=str;
return res.Left (resultStrLen);
}
Trailing zeros may be suppressed in the conversion.
所以可以先把串“12.8952000”转换成double型,再调用_gcvt函数,将double型转换成字符串时去零的特点,就可以实现截掉有效数字后的零,程序代码如下:
#include <stdlib.h>char num[]="12.5400";
double aa= atof( num ); ////////字符串变成double数据
char aa[20];
_gcvt( a, sizeof(a), aa);///////数据转换成字符串
printf("%s %f\n",num,a);////////输出结果
printf("%s %s\n",num,aa);