Test decimal number


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Test decimal number
# 1  
Old 07-31-2009
Test decimal number

Hi,

I would like test if a number is a decimal number or not
# 2  
Old 07-31-2009
one way
Code:
isdec()
{
    echo "$1" | tr -dc '[:digit:]'  | read  value
    if [[ $(( ${#1} - ${value} )) -eq 1 ]] ; then   # all numbers except one character
          [[ echo "$1" | grep -q '\.' ]] && echo 'ok' || echo 'not ok'  # one char is .
    fi
}
var=zz3
isdec $var
var=1.234
isdec $var

# 3  
Old 07-31-2009
Try...
Code:
echo $number | awk '$0==$0+0 && match($0,0)!=1 {print "Decimal number"}'

$0==$0+0 checks that its a number(but not Hexadecimal) and match($0,0)!=1 checks its not octal.
# 4  
Old 07-31-2009
Hi, i try something like this :
Code:
nombre=13.5

if (test $nombre = {*.*}); then
	echo "ici"
else
	echo "la bas"
fi
exit 0;

But it doesn't works..... Whatever value I put in nombre, it returns "la bas". I think I don't have the correct syntaxe to say " a string composed of blablabla.blablabla" (where blabla are digits)
I tried
Quote:
[*.*]
,
Quote:
{*.*}
and many other things, but it still don't works.

so is it possible to do what I want to do? If yes, could someone tell me the right way to write it?

regards
# 5  
Old 07-31-2009
Sorry, i would like know , after a division , if result is a number integer or not,

( 300 and 301 are value)

echo 300 / 2 | bc -l
150.00000000000000000000
--> it 's ok

echo 301 / 2 |bc -l
150.50000000000000000000
--> it's ko
# 6  
Old 07-31-2009
Use pattern matching

if [ `echo $num / 2 | bc -l | grep -c "[0-9]*\.00000000000000000000" ` = 1 ]
then
echo "OK"
else
echo "KO"
fi
# 7  
Old 07-31-2009
Something like this?

Code:
echo <number> | awk '$0-int($0){print $0 " = KO";next}{print $0 " = OK"}'

Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Zero padding a Number before and after a decimal place

Hi I was hoping someone could help me with a sed script I am trying to write? I am on a Mac running ElCapitan I have some text that I have converted from a pdf that I want to format into an xml file. In the file I have managed to delete all the text I do not need. The text I have left is... (8 Replies)
Discussion started by: Paul Walker
8 Replies

2. Shell Programming and Scripting

Sort Decimal number in UNIX

Hello Everyone, In one of my script, I would like to sort the decimal numbers. For e.g. If I have numbers like 1.0 1.1 1.2 2.0 2.1 3.0 4.0 5.0 6.0 7.0 7.1 7.10 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 I would like to sort them 1.0 1.1 1.2 2.0 2.1 3.0 4.0 5.0 6.0 7.0 7.1 7.2 7.3 7.4... (3 Replies)
Discussion started by: sachinrastogi
3 Replies

3. Shell Programming and Scripting

Decimal number calculation problem

I have a below snippet of code from my perl script and its causing a problem when the output of $lTAX is 0 (zero) its getting displayed as -0.00. I want output to be 0 not -0.00. Any help would be appreciated. #!/usr/bin/perl my $lTotA = 50.94; my $lVatA = 8.49; my $lAllocD; my $lAdjNr =... (4 Replies)
Discussion started by: Devesh5683
4 Replies

4. Shell Programming and Scripting

Matching a decimal number?

Hi everyone! Easy question for everyone. I'm trying to run a command line to find an exact match of a decimal number within a file. The number can be a positive OR negative number. For instance, if I want to find only the number -1 in the file that has: -17.6 -17 -16.3 -16.2 -15.7 -15.3... (6 Replies)
Discussion started by: lucshi09
6 Replies

5. Shell Programming and Scripting

number of digits after decimal

Hi All, I have a file of decimal numbers, cat file1.txt 1.1382666907 1.2603107334 1.6118799297 24.4995857056 494.7632588468 560.7633734425 ..... I want to see the output as only 7 digits after decimal (5 Replies)
Discussion started by: senayasma
5 Replies

6. UNIX for Dummies Questions & Answers

check if a decimal number is greater than zero

Hello, In my code I am checking to see if a variable that contains a decimal number is greater than 0 in the following manner: if do something fi However I am getting the error message (if $i for the current iteration holds 9.6352) command 9.6352 is not found How can I rectify... (5 Replies)
Discussion started by: Gussifinknottle
5 Replies

7. 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

8. Shell Programming and Scripting

Pattern to match decimal number and interger

Hi, i've a code if (($A && ((!($A =~ /^\d+$/))))) { -- -- not a number } else { --- its number. } which matches for integer value, i need to modify that pattern where it matches decimal number with 2 decimal points and also integer value. for eg: values 10, 10.00. 0.1, 1 , 3 must... (2 Replies)
Discussion started by: asak
2 Replies

9. Shell Programming and Scripting

Add zero in decimal number

echo "scale=2; 282.73/640" | bc This will print .44 How to make the variable as 0.44 (2 Replies)
Discussion started by: sandy1028
2 Replies
Login or Register to Ask a Question