min-round.sh

#!/bin/bash
if [ -z "$1" ] || [ -z "$2" ]; then
    echo "Usage: $0 <y> <d>" >&2
    exit 1
fi
echo | awk '
BEGIN{ b=1000 } # 初始化最小值 b 为 1000
{
    for(i=1; i<1000; i++){
        v = (d*i + y)/i;
        a = int(v + 0.5); # 计算 (d*i+y)/i,然后四舍五入
        if(a < b) { # 如果新值更小,更新最小值
            b = a;
        } else { # 一旦不再变小,就输出并退出
            printf "%d %.2f\n", i, v;
            exit;
        }
    }
}' y=$1 d=$2
Categories: 脚本