using bc with floating point number in files


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting using bc with floating point number in files
# 1  
Old 01-28-2009
using bc with floating point number in files

Hi,
I' using bash and I would like to use "bc" to compute the ratio of of two numbers and assign the ratio to a variable.
The numbers are in a file, e.g.
196.304492
615.348986

Any idea how to do it?
N.B. I cannot change the file to have 196.304492 / 615.348986 as the file is produced by another code.

Thank you for your help,
Sarah
# 2  
Old 01-28-2009
Code:
bash-3.00$ bc
scale=10
196.304492/615.348986
.3190132696

or

Code:
bash-3.00$  printf "%s\n" 'scale = 10; 196.304492/615.348986' | bc
.3190132696

or even:
Code:
bash-3.00$ x=$( printf "%s\n" 'scale = 10; 196.304492/615.348986' | bc)
bash-3.00$ echo $x
.3190132696


HTH
# 3  
Old 01-28-2009
Maybe I was not clear enough, the numbers are in a file containing these 2 numbers, one in each line.
So my guess would be that I need somehow to create a file or a string from the content of the file...but I can't figure out how.
Thank you,
# 4  
Old 01-28-2009
Option 1:
Code:
$( cat file | tr '\n' '/'|sed -e 's#/$#\n#'|bc )

Option 2:
Code:
$( cat file |perl -e '@v=<>; print $v[0]/$v[1];' )

# 5  
Old 01-28-2009
I would like to try something like Option 1 of pludi
however it seems not to work, maybe because in the file I have a new line character after each number.
# 6  
Old 01-28-2009
The first one should work, since the tr takes care of the newline. If the file is generated with MS-DOS/Windows style line terminators, modify the line to read
Code:
cat file | tr '\r' ' ' |tr '\n' '/'|sed -e 's#/$#\n#'

# 7  
Old 01-28-2009
I'm lost.

in tmp.tmp1 I managed to have something like
Quote:
196.304492
/
615.348986
in the script I have

Quote:
cat tmp.tmp1 | tr -d '\n\' > tmp.tmp2
dos2unix tmp.tmp2 > tmp.tmp3
ratio=$(cat tmp.tmp3 | bc -l)
echo $ratio
but it won't work!

Last edited by f_o_555; 01-28-2009 at 11:09 AM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Bash script to print the smallest floating point number in a row that is not 0

Hello, I have often found bash to be difficult when it comes to floating point numbers. I have data with rows of tab delimited floating point numbers. I need to find the smallest number in each row that is not 0.0. Numbers can be negative and they do not come in any particular order for a given... (9 Replies)
Discussion started by: LMHmedchem
9 Replies

2. Shell Programming and Scripting

Convert floating point to a number

Hello Guys, I have a floating point number 1.14475E+15 I want to convert this number in to full number (Integer or Big integer). I tried couple of functions it did not work. When I use INT=${FLOAT/.*} I am getting value as 1. I don't want a truncated value #!/bin/bash #... (9 Replies)
Discussion started by: skatpally
9 Replies

3. Shell Programming and Scripting

[BASH] Regex for floating point number

Hey again, I have a basic regex that tests if a number is a float. Thank you. (5 Replies)
Discussion started by: whyte_rhyno
5 Replies

4. Programming

Floating Point

Anyone help me i cant found the error of floating point if needed, i added the code complete #include <stdio.h> #include <string.h> #include <stdlib.h> #include <ctype.h> typedef struct { int hh; int mm; int ss; char nom; int punt; }cancion; typedef struct... (9 Replies)
Discussion started by: Slasho
9 Replies

5. Shell Programming and Scripting

problem with floating point number loops

Hey, I guess I am just to stupid and am not seeing the "wood for the trees", but I am always getting strange errors. I want to create a mesh with coordinates like: x y z 3.1 3.0 0.75 0 0 1 3.1 2.9 0.75 0 0 1 3.1 2.8 0.75 0 0 1 3.1 2.7 0.75 0 0 1 3.0 ... (10 Replies)
Discussion started by: ergy1983
10 Replies

6. Shell Programming and Scripting

floating point number problem

Hello folks I Hope everyone is fine. I am calculating number of bytes calculation from apache web log. awk '{ sum += $10 } END { print sum }' /var/httpd/log/mydomain.log 7.45557e+09 it show above number, what should i do it sow number like 7455, i mean if after decimal point above 5 it... (5 Replies)
Discussion started by: learnbash
5 Replies

7. Linux

Floating point exception !!!

Hi, I have linux fedora 4 ver., 2.6 kernal. And qmail & mysql & samba servers are already configured on this server. When I try to install any package like squidguard ,dansguardian,webmin,rsnapshots with command rpm -ivh . It is giving error as “Floating point exception" Snap View is... (3 Replies)
Discussion started by: ssk01
3 Replies

8. Programming

Floating point error in C

Hi, see the simple code below double i; i=8080.9940; printf(" val :%.30f\n",i); output i m getting is val :8080.993999999999700000000000000 when i m expecting val :8080.9940 what happens?how can i avoid it? thanks... (2 Replies)
Discussion started by: Hara
2 Replies

9. Programming

floating point problem

Hi all! Hi all! I am working with a problem to find the smallest floating point number that can be represented. I am going in a loop ,stating with an initial value of 1.0 and then diving it by 10 each time thru the loop. So the first time I am getting o.1 which I wanted.But from the next... (4 Replies)
Discussion started by: vijlak
4 Replies

10. Shell Programming and Scripting

floating point addition

hi, :) I have a file like this 10.456 123.567 456.876 234.987 ........ ....... What i want to do is ia have to add all those numbers and put the result in some other file. Any help pls. cheers RRK (8 Replies)
Discussion started by: ravi raj kumar
8 Replies
Login or Register to Ask a Question