在做计算器时,在对话框里输入数字,用GetBlgItemText得到字符串,然后用atof()函数转换成浮点数
在做计算器时,在对话框里输入数字,用GetBlgItemText得到字符串,然后用atof()函数转换成浮点数,可是为了判断数据是否合法,我希望能够把数据转换成字符串与原...
在做计算器时,在对话框里输入数字,用GetBlgItemText得到字符串,然后用atof()函数转换成浮点数,可是为了判断数据是否合法,我希望能够把数据转换成字符串与原来的相比,用什么实现呢?用sprintf函数转换成字符串后怎么输入与原来的都不一样
在c语言里有实现方法吗? 展开
在c语言里有实现方法吗? 展开
2个回答
展开全部
用 sprintf,可以把变量(比如浮点数)打印到字符串里
不过我建议你在调用 atof 之前先做一下字符串是否合法的检查
这个才是正确的做法
不过我建议你在调用 atof 之前先做一下字符串是否合法的检查
这个才是正确的做法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不太明白你想说什么,请把问题描述清楚。最好举例说明
追问
输入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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询