天天微动态丨awk判断整除(包含小数和负数)
(资料图片仅供参考)
awk判断整除常用的方法是用内置的int或者求余数的算符%
被整数整除输出0-100之间能被9整除的整数使用 num/9==int(num/9) 的判断方法可以很好实现。
awk "BEGIN{ for (i=0; i<100; i++) { if (i/9==int(i/9)) print i }}" | cat
或者使用 num%9==0 也可以轻松实现
awk "BEGIN{ for (i=0; i<100; i++) { if (i%9==0) print i }}" | cat
被小数整除常犯的错误但是,如果输出数列0.01, 0.02, 0.03, ... 1.00中能够被0.09整除的数字时,使用num/0.09==int(num/0.09)就行不通了,因为会遗漏很多数字。使用命令awk "BEGIN{for (i=0; i<1; i+=0.01) print i,i/0.09-int(i/0.09)}"
的输出部分结果是:
0 0 00.01 0.01 0.1111110.02 0.02 0.222222...0.16 0.07 0.7777780.17 0.08 0.8888890.18 2.77556e-17 4.44089e-160.19 0.01 0.111111...0.88 0.07 0.7777780.89 0.08 0.8888890.9 6.10623e-16 7.10543e-150.91 0.01 0.1111110.92 0.02 0.2222220.93 0.03 0.3333330.94 0.04 0.4444440.95 0.05 0.5555560.96 0.06 0.6666670.97 0.07 0.7777780.98 0.08 0.8888890.99 6.93889e-16 7.10543e-15
其中0.18,0.27都不是0,而是一个很小的数字,所以上面的方法只适用于整数的情况。
正确方法输出数列 3.0, 3.1, 3.2, 3.3, ... 5.0 中的可以被0.8整除的数字(正确答案是3.2, 4.0和4.8)命令awk "BEGIN{for (i=3; i<5; i+=0.1) print i,i%0.8,i/0.8-int(i/0.8)}"
输出的结果是
3 0.6 0.753.1 0.7 0.8753.2 0 0 !结果正确3.3 0.1 0.1253.4 0.2 0.253.5 0.3 0.3753.6 0.4 0.53.7 0.5 0.6253.8 0.6 0.753.9 0.7 0.8754 6.66134e-16 8.88178e-16 !结果错误4.1 0.1 0.1254.2 0.2 0.254.3 0.3 0.3754.4 0.4 0.54.5 0.5 0.6254.6 0.6 0.754.7 0.7 0.8754.8 0.8 1 !结果错误4.9 0.1 0.1255 0.2 0.25
所以正确的方法是使用以下命令:
awk "BEGIN{ for (i=3; i<5; i+=0.1) { if (i/0.8-int(i/0.8)<0.001 || i/0.8-int(i/0.8)>0.999) print i }}" | cat
或者使用以下命令:
awk "BEGIN{ for (i=3; i<5; i+=0.1) { if (i%0.8<0.001 || i%0.8>0.799) print i }}" | cat
包含负数时如果包含负数,那么上面的方法也有问题。最终稳妥的判断方法应该是:num/0.5-int(num/0.5)<-0.999 || ( num/0.5-int(num/0.5)>-0.001 && num/0.5-int(num/0.5)<0.001 ) || num/0.5-int(num/0.5)>0.999简短的写作:zc=num/0.5-int(num/0.5)if (zc<-0.999 || (zc>-0.001 && zc<0.001) || zc>0.999)例如输出-5到5之间能被0.5整除的小数
awk "BEGIN{ for (i=-5; i<5; i+=0.1) { zc=i/0.5-int(i/0.5); if (zc<-0.999 || (zc>-0.001 && zc<0.001) || zc>0.999) printf("%4.1f\n",i) }}" | cat
标签:
为您推荐
广告
- 天天微动态丨awk判断整除(包含小数和负数)
- 上海电影:一季度净利润同比增长2894.58%
- 环球观天下!什么是公积金异地转移接续?异地转移接续如何办理?戳进→
- 汇源通信2023年第一季度净利507.68万同比增长32.63% 光纤光缆及在线监测产品收入同比增加 当前热讯
- 天天滚动:图灵看市4.26晚-原油保持震荡、区间低点做多
- 达实智能:2023年第一季度报告将于2023年4月29日披露 天天快讯
- 黄豆芽的生长过程图片 黄豆芽的生长过程记录 每日报道
- 莱西市税务局开展政策宣讲 确保税收优惠直达快享 全球短讯
- 阎维文出席活动,现场向金铁霖、程志默哀缅怀,满脸憔悴老了太多
- 环球快消息!美菲联合军事演习针对中国意图明显外交部回应
- 快讯2023-04-26 15:02:16
- 天津港的“拖车王”——记“大国工匠”成卫东 热门
- 突发!3000亿龙头闪崩跌停,多只赛道牛股集体崩了!发生了什么? 世界信息
- 星月菩提子盘成后图片_星月菩提子盘成后图
- 【院庆50周年系列培训】护理部开展急救设备培训
- 感受戏骨最强演技!4月26日1905APP12部佳作连播
- 当前报道:3.8米超大微卡能否开辟新市场?试驾五菱龙卡
- 乌兰察布市卓资县“卓跃天资”区域公用品牌及商标正式发布
- 秦岭原乡,留坝样本如何价值共创乡村文旅新格局? 热点聚焦
- 财政部:1-3月全国发行新增债券16694亿元
- 1环球新消息丨碳酸锂降价锂电池性价比回归 钠离子电池会失宠吗?
- 2世界观焦点:学驾照年龄新规_学驾照年龄
- 3环球精选!国科军工科创板IPO提交注册
- 4iPhone 15定价泄露表明Pro和非Pro机型之间存在300美元的差距 世界报道
- 5天天快报!投资亏损拖累三六零业绩,股价大涨股东密集减持
- 6AI热潮提振云服务需求 微软(MSFT.US)Q3业绩全线超预期! 盘后一度跃升超9%
- 7涉密系统集成资质改革(涉密系统集成资质官网)|当前时讯
- 8多家外航大幅增加中国航线业务
- 9天天快播:什么是无氯漂白剂?
- 10中国神华(01088.HK):4月25日南向资金增持139.4万股
- 1【全球新视野】吉林动画学院是几本a吗_吉林动画学院是几本
- 2美国第一条高铁差近38亿美元就能开工,美国的“高铁梦”还有多远? 环球观天下
- 3鞋柜尺寸及内部设计尺寸_鞋柜尺寸 环球信息
- 4创卫生城市,赢健康生活 望城区2023年“爱卫之旅”定向赛激情开跑-当前热门
- 52023款欧拉芭蕾猫上市,14.98万元起
- 6水浒传梗概500字作文_水浒传梗概500字-今日热议
- 7全球快看:芯朋微最新公告:大基金拟减持不超过2%
- 8皇姑区中乾大厦门口有人乱收停车费?城管:物业将优先考虑周边商户停车_天天观天下
- 9俄罗斯央行3月抛售3.1吨黄金,仍为全球第五大储备国!|每日热闻
- 10dblack是什么品牌价格_dbl
广告
- 天天快报!【视频】6人的车子坐了18人,超员200%,还都戴着头盔
- 美媒:美政界充斥自私利己心态 任由脆弱群体遭受枪暴与疫情威胁-环球热门
- 世界微动态丨盒马奥莱上海枫泾店开业 朱泾临源店预计5月开业
- V观财报|涉信披违规等 好想你及董事长等收监管函|最新消息
- 快报:孙云龙
- G7峰会前这一国演练上了!模拟应对现场化学恐袭_全球今头条
- 每日热议!大涨解读:中科信息 涨幅19.99%
- 全球今亮点!犀牛吃什么植物?_女生十七岁送什么生日礼物
- 观热点:墨尔本悉尼自驾海岸线(墨尔本自驾去悉尼攻略)
- 使用数字人民币发的工资,是种什么体验?
- 新开普公告董事长被刑拘,公司回应:系5年前内幕交易事件
- 恒生科技指数大跌超4%,百度、美团等跌超5% 世界快消息
- 崩坏星穹铁道丹恒技能是什么
- 世界观察:孙丽莉
- 浏阳文家市镇电商培训“开”进村 乡村振兴添动力
- 环球即时看!咸宁市首届不动产登记“最美登记人”出炉
- 天天热文:剪映怎么去水印_一起学习
- 天天微头条丨工伤临时住房被拆除如何赔偿?
- “朱女士,医生喊你紧急返院……”
- 环球观点:2023年宁波学费补贴申请条件有哪些?