Skip to content

服务器托管,北京服务器托管,服务器租用-价格及机房咨询

Menu
  • 首页
  • 关于我们
  • 新闻资讯
  • 数据中心
  • 服务器托管
  • 服务器租用
  • 机房租用
  • 支持中心
  • 解决方案
  • 联系我们
Menu

awk判断整除(包含小数和负数)

Posted on 2023年5月6日 by hackdl

awk判断整除常用的方法是用内置的int或者求余数的算符%

被整数整除

输出0-100之间能被9整除的整数
使用 num/9==int(num/9) 的判断方法可以很好实现。

awk 'BEGIN{
    for (i=0; i

或者使用 num%9==0 也可以轻松实现

awk 'BEGIN{
    for (i=0; i

被小数整除

常犯的错误

但是,如果输出数列0.01, 0.02, 0.03, … 1.00中能够被0.09整除的数字时,
使用num/0.09==int(num/0.09)就行不通了,因为会遗漏很多数字。
使用命令awk 'BEGIN{for (i=0; i的输出部分结果是:

0 0 0
0.01 0.01 0.111111
0.02 0.02 0.222222
...
0.16 0.07 0.777778
0.17 0.08 0.888889
0.18 2.77556e-17 4.44089e-16
0.19 0.01 0.111111
...
0.88 0.07 0.777778
0.89 0.08 0.888889
0.9 6.10623e-16 7.10543e-15
0.91 0.01 0.111111
0.92 0.02 0.222222
0.93 0.03 0.333333
0.94 0.04 0.444444
0.95 0.05 0.555556
0.96 0.06 0.666667
0.97 0.07 0.777778
0.98 0.08 0.888889
0.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输出的结果是

3 0.6 0.75
3.1 0.7 0.875
3.2 0 0             !结果正确
3.3 0.1 0.125
3.4 0.2 0.25
3.5 0.3 0.375
3.6 0.4 0.5
3.7 0.5 0.625
3.8 0.6 0.75
3.9 0.7 0.875
4 6.66134e-16 8.88178e-16 !结果错误
4.1 0.1 0.125
4.2 0.2 0.25
4.3 0.3 0.375
4.4 0.4 0.5
4.5 0.5 0.625
4.6 0.6 0.75
4.7 0.7 0.875
4.8 0.8 1          !结果错误
4.9 0.1 0.125
5 0.2 0.25

所以正确的方法是使用以下命令:

awk 'BEGIN{
    for (i=3; i0.999) print i
    }}' | cat

或者使用以下命令:

awk 'BEGIN{
    for (i=3; i0.799) print i
    }}' | cat

包含负数时

如果包含负数,那么上面的方法也有问题。
最终稳妥的判断方法应该是:
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.001 && zc0.999)
例如输出-5到5之间能被0.5整除的小数

awk 'BEGIN{
    for (i=-5; i-0.001 && zc0.999) printf("%4.1fn",i)
    }}' | cat

服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.e1idc.net

Related posts:

  1. 服务器托管年付优惠多少
  2. 深圳云计算服务器托管服务:高效稳定的数据存储解决方案
  3. React源码分析(二)渲染机制
  4. 深圳服务器托管服务:专业的数据存储与管理方案
  5. 自建与托管服务器:选择合适的服务器托管方式

服务器托管,北京服务器托管,服务器租用,机房机柜带宽租用

服务器托管

咨询:董先生

电话13051898268 QQ/微信93663045!

上一篇: 打工人逃不开「单人单岗」
下一篇: 神州山河服务方式

最新更新

  • 如何使用 NFTScan NFT API 追踪巨鲸钱包地址
  • 微信小程序判断用户是否授权定位
  • python入门基础(13)–类、对象、全局函数,类内部调用
  • 深度解析Apache Spark:大数据处理的未来
  • leetcode 2451 差值数组不同的字符串

随机推荐

  • STC89C52+AT24C02实现设备开机次数记
  • 我校服务器实现托管,提升系统稳定性
  • 智能托管,小企业服务器租用首选
  • 百人研发团队百亿销售规模的技术架构实践分享
  • 六盘水idc机房托管

客服咨询

  • 董先生
  • 微信/QQ:93663045
  • 电话:13051898268
  • 邮箱:dongli@hhisp.com
  • 地址:北京市石景山区重聚园甲18号2层

友情链接

  • 服务器托管
  • 机房租用托管
  • 服务器租用托管
©2023 服务器托管,北京服务器托管,服务器租用-价格及机房咨询 京ICP备13047091号-8