Chinaunix

标题: 比较数值的问题 [打印本页]

作者: gonghouyu    时间: 2009-01-09 13:33
标题: 比较数值的问题
diff -w 比较两个数值 105.6  105.60  会报不相等 有什么可以让它忽略小数点后面的零呢
作者: smallstar001    时间: 2009-01-09 13:43
diff 比较的是文件中的字符,不官是不是数字
作者: biglazybug    时间: 2009-01-09 13:45
也就是做不到呗
作者: smallstar001    时间: 2009-01-09 13:54
你可以用awk来比较

比如

awk 'BEGIN{if(105.6+0==105.60+0){print "equal"}else{print "No equal"}}'
作者: 飞鸿无痕    时间: 2009-01-09 14:06
又学习了!!!
作者: gonghouyu    时间: 2009-01-09 16:33
diff没法解决 晕....
作者: luyi1983    时间: 2009-01-09 17:24
标题: 回复 #1 gonghouyu 的帖子
严格来说 浮点数比较是危险的事情
只能用类似这样的方法来作
const float EPSINON = 0.00001;
if ((x >= - EPSINON) && (x <= EPSINON)
作者: yezhulin1982    时间: 2009-01-09 17:59
floating不是shell的强项。
作者: 我是DBA    时间: 2009-01-09 21:46
可以转换成同一数据类型再去比较。。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2