如何在Bash shell脚本中将整数和浮点数相加

21

我有两个数字:

value1=686
value2=228.35

我无法将整数和浮点数相加。请帮忙得到结果。

我正在bash中运行它。


1
bc,awk,python,perl - Karoly Horvath
可能是重复的问题:如何在Bash脚本中添加数字 - Karoly Horvath
Korn shell 93 支持浮点数。你安装了 ksh 吗? - cdarke
4个回答

24
echo 1 + 3.5 | bc

awk "BEGIN {print 1+3.5; exit}"

python -c "print 1+3.5"

perl -e "print 1+3.5"

只需用您的变量替换数字,例如:echo $n1 + $n2 | bc


2
谢谢 :) 我的Linux机器上没有BC语言,而且我也没有安装它的权限,这是一个大问题。 - sasuke

10

如果您已安装了bc语言,则可以执行以下操作:

#!bin/bash
numone=1.234
numtwo=0.124
total=`echo $numone + $numtwo | bc`
echo $total

如果您没有bc,那么您可以尝试使用awk。只需一行命令:

如果您没有bc,则可以尝试使用awk。只需一行命令:

echo 1.234 2.345 | awk '{print $1 + $2}'

还有许多其他的选择,比如Python、Perl和PHP...


"bc" 是一种语言,因此可能不会默认安装。尝试使用 "sudo apt-get install bc" 安装。 - Konstantin Yovkov
我没有安装bc语言的权限,我们能用其他方式吗? - sasuke
echo 1.234 2.345 | awk '{print $1 + $2}' - Konstantin Yovkov

5

Bash没有浮点类型,但你可以使用计算器,如 bc:

a=686
b=228.35
c=`echo $a + $b | bc`
echo "$c"

-7
 #!/bin/Bash
echo "Enter the two numbers to be added:"
read n1
read n2
answer=$(($n1+$n2))
echo $answer

2
686+228.35:语法错误:无效算术运算符(错误令牌为“.35”)。 - sasuke
1
你可以使用...计算686.0+228.35。 - snehal
1
这个不起作用是因为bash内置的数学运算符 $(( )) 只支持整数的数学运算。 - Leon S.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接