2013-05-03 30 views
14

Tôi có hai sốcách thêm số Integer và một số float trong unix shell script

value1 = 686

value2 = 228,35

Tôi không thể thêm số nguyên và nổi. Xin hãy giúp tôi để có được kết quả.

Tôi đang chạy nó trong bash.

+1

bc, awk, python, perl –

+0

thể trùng lặp của [Làm thế nào tôi có thể thêm số điện thoại trong một tập lệnh bash] (http://stackoverflow.com/questions/6348902/how-can-i-add-numbers-in-a-bash-script) –

+0

Korn shell 93 hỗ trợ dấu chấm động. Bạn đã cài đặt ksh chưa? – cdarke

Trả lời

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" 

Chỉ cần thay thế những con số với các biến của bạn, ví dụ như: echo $n1 + $n2 | bc

+1

thnx :) ngôn ngữ bc không có trên máy linux của tôi và tôi không có quyền cài đặt nó tốt như vậy mà là vấn đề lớn. – sasuke

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

đó là số nguyên bổ sung. –

+2

686 + 228.35: lỗi cú pháp: toán tử số học không hợp lệ (mã thông báo lỗi là ".35") – sasuke

+0

bạn cũng có thể thêm bằng cách sử dụng ... calc 686.0 + 228.35 – snehal

3

Nếu bạn đã cài đặt ngôn ngữ bc, bạn có thể làm như sau:

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

Nếu bạn không có bc, sau đó bạn có thể thử với awk. Chỉ trong một dòng duy nhất:

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

Có rất nhiều tùy chọn khác. Giống như trăn, perl, php ....

+0

Tôi nhận được lỗi sau:" bc: lệnh không tìm thấy " – sasuke

+0

' bc' là một ngôn ngữ, vì vậy nó có thể không được cài đặt theo mặc định. thử 'sudo apt-get install bc' –

+0

Tôi không có quyền cài đặt ngôn ngữ bc, chúng ta có thể làm điều đó theo cách khác không. – sasuke

-3

Làm thế nào về chuyển đổi phao để int bằng cách nhân nó bằng 100, thêm 2 giá trị và chuyển đổi trở lại bởi divindig nó bằng 100 lần nữa?

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

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

echo $answer 
+0

thậm chí bạn có kiểm tra xem mã của bạn có chạy không? – shookees

+0

@shookees tất nhiên. Tại sao bạn hỏi? – Anton

+3

gây ra nó không :) – shookees

1

Bash không có các loại dấu chấm động, nhưng bạn có thể sử dụng một máy tính như bc:

a=686 
b=228.35 
c=`echo $a + $b | bc` 
echo "$c" 
Các vấn đề liên quan