免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1783 | 回复: 5
打印 上一主题 下一主题

[C] 有人用atof(version)做版本比较么? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-12-01 18:01 |只看该作者 |倒序浏览
  1. const char * version;
  2. ....  // 运行时version被赋予了"1.3.1"
  3. if (atof(version) >= 1.3)
  4. {
  5.     .... // do sth.
  6. }
复制代码
这种方式个人揣测是可以依照我们期望去工作的,因为私以为atof在运行时对"1.3.1"的转double得到的结果同编译时读到1.3字面量转出的结果能够一致
但总觉得这种转码再比较的方法很别扭(用小数来理解版本号挺好,但这里只是近似小数的浮点),不知道大家有没这么玩儿的

论坛徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52双子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午马
日期:2013-10-18 21:43:38
2 [报告]
发表于 2012-12-01 19:53 |只看该作者
浮点不精确,也许会得到<的结果

论坛徽章:
0
3 [报告]
发表于 2012-12-01 22:18 |只看该作者
回复 2# hellioncu


    你觉得 atof("1.3") == 1.3 不能成立?

论坛徽章:
0
4 [报告]
发表于 2012-12-02 08:55 |只看该作者
回复 3# jeung

有可能

论坛徽章:
0
5 [报告]
发表于 2012-12-02 10:57 |只看该作者
strchr + strcmp/atoi ...

论坛徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46处女座
日期:2013-10-24 14:25:01酉鸡
日期:2014-04-07 11:54:15
6 [报告]
发表于 2012-12-02 15:26 |只看该作者
字符串直接按照'.'拆字段, 逐个转成整形做比较.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP