首页 > 解决方案 > 带有变量的bash中的浮点数学

问题描述

你如何在bash中对变量执行浮点数学运算我得到的输出是一个像数字一样的整数

#! /bin/bash 

# finding the average of n numbers 

avg=0
read -p "" n  

for (( i = 0; i < $n; i++ )) 
do 
    read x 
    ((avg = $avg + $x ))  

done

#printf %.3f "$(( avg / n ))  "


目标是最多显示 3 位小数

3
4
5
6
./avg.sh: line 22: printf: 5  : invalid number
5,000

我尝试使用| bc但我错过了某事

标签: bash

解决方案


发现这个有用的问题

在 for 循环之后添加了此部分



var=$(echo "scale=3;  $avg / $n" | bc -l)
echo $var 

推荐阅读