2013-05-03 54 views
14

Mam dwa numeryjak dodać liczbę całkowitą i liczbę zmiennoprzecinkową Unix shell skrypt

wartosc1 = 686

value2 = 228,35

ja nie jestem w stanie dodać całkowitą i pływak. Proszę, pomóż mi, aby uzyskać wynik.

Używam go w bash.

+1

BC, awk, Python, Perl –

+0

możliwym duplikatu [Jak mogę dodać numery w skrypcie basha] (http://stackoverflow.com/questions/6348902/how-can-i-add-numbers-in-a-bash-script) –

+0

Powłoka Korn 93 obsługuje zmiennoprzecinkowy punkt. Czy masz zainstalowane ksh? – cdarke

Odpowiedz

17
echo 1 + 3.5 | bc 

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

python -c "print 1+3.5" 

perl -e "print 1+3.5" 

Wystarczy wymienić numery ze zmiennych, np: echo $n1 + $n2 | bc

+1

thnx :) Język bc nie jest obecny na moim komputerze z systemem Linux i nie mam uprawnień do instalacji go tak dobrze, że był duży problem. – sasuke

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

to dodanie liczb całkowitych. –

+2

686 + 228.35: błąd składni: niepoprawny operator arytmetyczny (token błędu to ".35") – sasuke

+0

możesz również dodać używając ... calc 686,0 + 228,35 – snehal

3

Jeżeli zainstalowano język bc, można wykonać następujące czynności:

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

Jeśli nie masz bc, to można spróbować z awk. Tylko w jednym wierszu:

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

Istnieje wiele innych opcji, również. Jak Python, Perl, PHP ....

+0

Otrzymuję następujący błąd: "bc: nie znaleziono polecenia " – sasuke

+0

' bc' jest językiem, więc może nie być zainstalowany domyślnie. spróbuj 'sudo apt-get install bc' –

+0

Nie mam uprawnień do instalacji języka bc, możemy to zrobić w inny sposób. – sasuke

-3

Jak o konwersji pływaka do int, mnożąc ją przez 100, dodając 2 wartości i przekształcenie wróć do divindig it by 100 ponownie?

#!/bin/Bash 
Echo "Enter the two numbers to be added:" 

read n1 
read n2 
answer=$(($n1+$n2*100)/100) 

echo $answer 
+0

czy nawet sprawdzisz, czy Twój kod działa? – shookees

+0

@ Oczywiście, oczywiście. Dlaczego pytasz? – Anton

+3

bo nie ma :) – shookees

1

atakujących nie posiada typów zmiennoprzecinkowych, ale można skorzystać z kalkulatora takiego jak bc:

a=686 
b=228.35 
c=`echo $a + $b | bc` 
echo "$c" 
Powiązane problemy