在做计算器时,在对话框里输入数字,用GetBlgItemText得到字符串,然后用atof()函数转换成浮点数

在做计算器时,在对话框里输入数字,用GetBlgItemText得到字符串,然后用atof()函数转换成浮点数,可是为了判断数据是否合法,我希望能够把数据转换成字符串与原... 在做计算器时,在对话框里输入数字,用GetBlgItemText得到字符串,然后用atof()函数转换成浮点数,可是为了判断数据是否合法,我希望能够把数据转换成字符串与原来的相比,用什么实现呢?用sprintf函数转换成字符串后怎么输入与原来的都不一样
在c语言里有实现方法吗?
展开
 我来答
好大一根
2012-11-30
知道答主
回答量:5
采纳率:0%
帮助的人:6855
展开全部
用 sprintf,可以把变量(比如浮点数)打印到字符串里
不过我建议你在调用 atof 之前先做一下字符串是否合法的检查
这个才是正确的做法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dingba12345
2012-11-29 · 超过32用户采纳过TA的回答
知道答主
回答量:86
采纳率:0%
帮助的人:82.5万
展开全部
不太明白你想说什么,请把问题描述清楚。最好举例说明
追问
输入45.5然后得到字符串45.5“,利用atof转换成45.5要是你输入45.6g你得到字符串是45.6怎么知道是否合法呢?将46.6转换成”46.6“然后与”46.6g比不一样,说明输入非法!我就想怎么把一个实数入46.6转换成字符串”“46.6“
追答
那个把小数变为字符串好像不可行。
因为,举个例子吧,数学上的小数1.001在计算机中可能存储为1.0009。
那么问题出来了,我怎么知道这1.0009是精确值还是近似值,可能你给我的就是数学上的1.0009

下面是我复制来的
用gcvt函数!
函数名: gcvt
功 能: 把浮点数转换成字符串
用 法: char *gcvt(double value, int ndigit, char *buf);

例子:

#include
#include

int main(void)
{
char str[25];
double dNum;
int n = 8;//需要转化的位数

//一般浮点数
dNum = 1.235543
gcvt(dNum, n, str);
printf( "string = %s\n", str);

//负数
dNum = -1.235543;
gcvt(dNum, n, str);
printf("string = %s\n", str);

//指数
dNum = 0.678e5;
gcvt(dNum, n, str);
printf("string = %s\n", str);

return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式