使用bash进行浮点运算

qui*_*bug 7 string bash replace exif operation

如何在bash脚本中将字符串"620/100"转换为"6.2"

我的问题的背景是关于图像处理.EXIF数据以小数格式编码焦距,而我需要相应的十进制字符串.

感谢您的帮助,Olivier

anu*_*ava 16

使用 bc -l

bc -l <<< "scale=2; 620/100"
6.20
Run Code Online (Sandbox Code Playgroud)

或者awk:

awk 'BEGIN{printf "%.2f\n", (620/100)}'
6.20
Run Code Online (Sandbox Code Playgroud)


dev*_*ull 5

bash 不支持浮点。

你可以使用bc

$ echo "50/10" | bc -l
5.00000000000000000000
$ echo "scale=1; 50/10" | bc -l
5.0
Run Code Online (Sandbox Code Playgroud)