首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C连接mysql数据库取值判断的有关问题

2012-05-28 
C连接mysql数据库取值判断的问题C连接mysql数据库 取出数据,在需要进行判断数据库中resrow[0]处的值是否与

C连接mysql数据库取值判断的问题
C连接mysql数据库 取出数据,在需要进行判断数据库中resrow[0]处的值是否与本地某个double类型是否相等时,无法判断,char *类型的resrow[0]无法转换为等效的double类型,互转也不行,求解 调试信息:

resrow[1] 0x009de3fe "106.043403625488"( 注:数据库中也是double类型)
spa->longitude 106.043403625488
无法使用if语句进行判断  
求解。


[解决办法]
mysql 的c api 全部都是使用字符串来传输的(不论数据库中的是什么类型),你要想和数值比较,要先把字符串转换为数值.

可参考以下几种方式:
 1) 标准c函数:
atoi() atol() atof()
 2) 标准c字符串输入输出函数
float ff; 
sscanf(str, "%f",&ff);// str 是mysql返回的字符串
 3) 标准c++字符串流
float ff;
std::stringstream ss;
ss << str;//str 是mysql返回的字符串
ss >> ff;

4) 楼下补充...

个人建议: 可以的话,尽量用 (3) ...
[解决办法]
atof

热点排行