how can i find sqrt of a any number without using expr


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting how can i find sqrt of a any number without using expr
# 1  
Old 03-31-2009
how can i find sqrt of a any number without using expr

hi friends
can any body tell me how can i find sqrt of a any given number without using expr in bash shell
while i am doing i got some errors please take a look
and code is here
x=$((( ( sqrt($1) ) | bc )))
echo $x

Code:
[srinivas@localhost shell-lab]$ sh quadratic-eqn-roots.sh 9
quadratic-eqn-roots.sh: line 12: ( ( sqrt(9) ) | bc ): missing `)' (error token is "(9) ) | bc )")

# 2  
Old 04-15-2009
Heh, That expression is very problematic. Here's one that works. The first argument is a number, which becomes 0 if it's not provided or if it is less than 0. The second argument is the number of decimal places to output -- or 4 if not provided.
Code:
y=$1
scale=4
# Make sure input is a valid number.
test -n "$y" || y=0; test "$y" -ge 0 || y=0
# Make sure scale is some number
test -z "$2" || scale=$2
# calc square root via bc
{ echo "scale=$scale"; echo "sqrt($y)" ; } | bc

# 3  
Old 04-15-2009
MySQL how can i find sqrt of a any number without using expr

vow...great...thanks a lot....
Smilie
# 4  
Old 04-15-2009
you can also use awk
Code:
printf "4" | awk '{print sqrt($0)}'

# 5  
Old 04-15-2009
Thanks..... I was actually just looking for a simple solution to that!

Quote:
Originally Posted by ghostdog74
you can also use awk
Code:
printf "4" | awk '{print sqrt($0)}'

# 6  
Old 04-15-2009
Code:
echo "sqrt($var)" | bc -l" | read root

The bc in Linux exceeds standard: add a -l for all you non-Linux coders.
# 7  
Old 04-16-2009
Ghostdog's solution is better, and can be made even simpler:

Code:
x=`awk "END{print sqrt($y)}" </dev/null`

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Q: Is SQRT(n) possible in a POSIX compliant shell? A: Yes within limits.

Hi all... This is just a fun project to see if it is possible to get a square root of a positive integer from 1 to 9200000 to 6 decimal places on a 64 bit architecture machine. It is coded around dash and the results show the values from 0 to 10000. Complex numbers can easily be catered for by... (3 Replies)
Discussion started by: wisecracker
3 Replies

2. Shell Programming and Scripting

awk to find number in a field then print the line and the number

Hi I want to use awk to match where field 3 contains a number within string - then print the line and just the number as a new field. The source file is pipe delimited and looks something like 1|net|ABC Letr1|1530||| 1|net|EXP_1040 ABC|1121||| 1|net|EXP_TG1224|1122||| 1|net|R_North|1123|||... (5 Replies)
Discussion started by: Mudshark
5 Replies

3. Shell Programming and Scripting

Find command - using regular expr

Hi, I would like to use find command to find file with a predefined extension for example find . modules/*.ksh *.lib I thought it's possible to use something like : find . modules/*. but it does not work. is there any other way? Thanks you (2 Replies)
Discussion started by: zam
2 Replies

4. UNIX for Dummies Questions & Answers

sqrt in bash

Hi, i have a the following script: #!/bin/bash a=3 b=9 let "c= b*a" let "d=sqrt $c " echo $d But when i execute the code, it gives me the an error saying: line 5: let: d=sqrt 27 : syntax error in expression (error token is "27 ") Can any body tell me what I'm doing wrong? (5 Replies)
Discussion started by: limadario
5 Replies

5. Programming

C Library reference error using sqrt() - will not compile.

This so basic that it should work.... Any ideas would be appreciared. Using a number directly in the sqrt allows it to compile. primrose > cat a.c #include <stdio.h> #include <math.h> int main(void) { double abcd=9; printf("%f\n",sqrt(abcd)); } primrose > gcc a.c Undefined first... (2 Replies)
Discussion started by: plastichead
2 Replies

6. Shell Programming and Scripting

PERL: Simple reg expr validate 6 digits number

Hi there! I'm trying to validate a simple 6 digits number with reg expr. I ONLY want 6 digits so when i type 7 digits the script should no validate the number. I've write this code: #!/usr/bin/perl while(<STDIN>){ if($_=~/\d{6}/){ print "Bingo!\n"; ... (2 Replies)
Discussion started by: BufferExploder
2 Replies

7. Shell Programming and Scripting

Find first digit in string using expr index

I have looked for hours for an answer, so I have decided to request your guidance. I want to substract the first number (series of digits) contained in a string. This string is the output of another command. The substring (number) can be located at any position inside the string. I want to... (4 Replies)
Discussion started by: jcd
4 Replies

8. Shell Programming and Scripting

How to create SQRT function in catenate file

HI, I have a file which i catenate and using the fields in the file, I would like to get sqrt of it. I tried to man the function but it normally would need an echo as well as bc. What I am intending to find out is catenate a file where let say cat a.txt| awk ' { t= h*($3+$2); t=... (7 Replies)
Discussion started by: ahjiefreak
7 Replies

9. Programming

sqrt is not find???

I was writing a simple program in linux, which includes sqrt function of c. I included the math.h. But when I use gcc to compile it, it gave an error message: /home/murat/tmp/ccOv9upo.o(.text+0x4b): In function `main': : undefined reference to `sqrt' collect2: ld returned 1 exit status I... (2 Replies)
Discussion started by: murataht
2 Replies

10. Programming

sqrt

Hi! when i'm trying to compile this lite example on my linux machine I'll get errors and i don't know why.. #include <stdio.h> #include <math.h> /* needed by sqrt() */ int main() { printf("%f", sqrt(10.0)); return (0); } this is the error: /tmp/cc33hNVHK.o: In function... (1 Reply)
Discussion started by: CreamHarry
1 Replies
Login or Register to Ask a Question