Condition for decimal numbers


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Condition for decimal numbers
# 8  
Old 12-29-2010
Quote:
Originally Posted by streddy
rohon,

i get this output. output seems ok whr my input file has the value 3.4

whats the error ./str %:not found?

temp=/tmp/st
+ % [[ /tmp/st -gt 0.1 ]]
./str: %: not found
+ echo KO
KO
U don't have to include % sign. It's my command prompt. Simply write

Code:
 [[ `cat /tmp/st` -gt 0.1 ]] && echo OK || echo KO

R0H0N
# 9  
Old 12-29-2010
Quote:
Originally Posted by R0H0N
Code:
% [[ 0.3 -gt 0.1 ]]&& echo OK||echo KO
OK
% [[ 0.3 -lt 0.1 ]]&& echo OK||echo KO
KO

I think this only works on ksh93 which has built-in floating point arithmetic.

On bash, an error is generated...
Code:
$ [[ 0.3 -gt 0.1 ]]&& echo OK||echo KO
bash: [[: 0.3: syntax error: invalid arithmetic operator (error token is ".3")
KO

# 10  
Old 12-30-2010
Hi.

I know zsh as well can do floating-point, and there may be others.

For portability, I would use something similar to:
Quote:
Originally Posted by citaylor
This code will handle any floating point expression correctly.
The "bc" will return 0=false, or 1=true:
Code:
if [ "$(echo $temp \> 0.1 | bc)" -eq 1 ]; then ....

One also could create or Google for functions that might be useful in this situation.

Good luck ... cheers, drl
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Decimal numbers and letters in the same collums: round numbers

Hi! I found and then adapt the code for my pipeline... awk -F"," -vOFS="," '{printf "%0.2f %0.f\n",$2,$4}' xxx > yyy I add -F"," -vOFS="," (for input and output as csv file) and I change the columns and the number of decimal... It works but I have also some problems... here my columns ... (7 Replies)
Discussion started by: echo manolis
7 Replies

2. Shell Programming and Scripting

Comparing decimal numbers between 0 and 1

For numbers between 0 and 1 the below logic is not working. Output of above shall be "correct" but its echoing "incorrect".Kindly suggest a=.1 if then echo correct else echo incorrect fi Video tutorial on how to use code tags in The UNIX and Linux Forums. (3 Replies)
Discussion started by: itsvikas
3 Replies

3. Shell Programming and Scripting

if test for higher value between 2 decimal numbers

Hi I would like to test for a max number value. It may be a decimal so I know I have to pipe into bc. I just cannot get the syntax for this to work. I cannot get passed an error with the bracket - see below. Any help appreciated. Regards Ewan This works: /export/home/ewan> cat... (5 Replies)
Discussion started by: emjs
5 Replies

4. UNIX for Dummies Questions & Answers

If then else for decimal numbers part2

Hi, I have a small problem with my script. I have everything in order but it doesnt seem to compare anything less than 1 correctly. If the input is more than 1, then the results is correct. If the input is 0.xxx (anything) it returns erroneous results. Pls help input=0.12 if ; then ... (7 Replies)
Discussion started by: streddy
7 Replies

5. Shell Programming and Scripting

Regarding decimal numbers

Hello... I am new to unix and I am wondering if in a C-shell script , Are we supposed to use only whole numbers........ for example..if a program needs to calculate the average of some numbers........ @ avg = (($1 +$2 + $3)/3)) is returning a whole number.........How can a decimal be... (7 Replies)
Discussion started by: ravindra22
7 Replies

6. Shell Programming and Scripting

Count the decimal numbers with 6 precision

Hi guys, I have a single column file with millions of records. I want to count the number of records with 6 decimal precision. for ex: 1234.12 1234.132 12345.12345 1234.1 1234.13 1234.123456 243435.454555 i need to count the number of records with precision of 6 ( i.e here the... (4 Replies)
Discussion started by: marcus_kosaman
4 Replies

7. Shell Programming and Scripting

Comparing Decimal Numbers

Im trying to compare two numbers with decimals but its not working as expected. a=1 b=1.1 if then echo "equal" fi When I do this it says that the numbers are equal. Ultimately Im using -le and -ge in the if statements but I tested with -eq for simplicity. Any way to make this... (3 Replies)
Discussion started by: Grizzly
3 Replies

8. Shell Programming and Scripting

decimal numbers

Hi friends How can I use "for loop" for decimal numbers? ex: 0.1 < x < 0.6 I used this commands but does'nt work. LIMIT=0.6 for ((x=0.1; x<=LIMIT; x++)) do - - - done Many thanks (1 Reply)
Discussion started by: snow
1 Replies

9. Shell Programming and Scripting

Devision of Decimal Numbers?

How can i devide decimal numbers? I am getting this kind of error: line 18: 200.2/40.234: syntax error in expression (error token is ".2/40.234") What can i do to work around this problem? Thanks for any advice. (4 Replies)
Discussion started by: Vozx
4 Replies

10. Shell Programming and Scripting

compare decimal numbers

Hi anyone, i need to compare two decimal numbers i thought that it could be do it with if but... :( So, i'm writing in csh and i really apreciate if anyone can help me if ( $ppl_kn <= $ppl_wb ) then echo "############# KNdiscount model has the lowest perplexity" set... (5 Replies)
Discussion started by: tmxps
5 Replies
Login or Register to Ask a Question