2015-02-10 70 views
0

我有一組浮點數如2.45, 3.56, 54,64等等的輸入文件。我需要總結他們。在bash中將浮點數轉換爲整數而不捨入

看完這個article我知道沒有直接的方法可以做到這一點。我無法圍繞任何數字。

我記得有一種方法可以在沒有四捨五入的情況下將int轉換爲int。像2.54 * 100 = 254.之後,我可以做所有的數學運算,並使用AWK將其返回到浮點視圖。

我試圖使用bc工具,但它不會以這種方式工作。

一樣,(錯誤代碼)

a=2.54 
c=$((a * 100)) | bc -l 

請,建議

不能重複,這是因爲: 我要求和希望轉換浮點數爲整數,不比較2浮動數字。我需要對它進行總結,這與比較有所不同。此外,這個問題沒有回答我的問題。 這裏要問的一點是爲特定問題得到最接近可能的答案。

+0

的'bc'命令會更喜歡'BC -l <​​<< 「2.56 * 100」'比你在你的問題給予了什麼(它的數學在bash本地,而不是在BC)。 – 2015-02-10 21:59:20

+0

......或者只是在bc中做數學運算:'bc -l <​​<<「2.56 + 3.41」' – 2015-02-10 22:00:24

+0

......因此,被標記爲重複的問題在它的表面上並不離譜,因爲它相當公平 - 從那裏給出的正確答案中獲得顯而易見的單字符變化('>'到'+'),甚至不用乘以100的解決方法。 – 2015-02-10 22:01:22

回答

0

你可以用awk,

$ echo '2.45, 3.56, 54,64' | awk -v FS=" *, *" '{for(i=1;i<=NF;i++){count = count+$i}}END{print count}' 
124.01