Arithmetic in floating point


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Arithmetic in floating point
# 1  
Old 02-01-2010
Arithmetic in floating point

is it not possible to simply di aritmetic without using bc or awk

i have tried folllowing operatrions but they support only integer types plz suggest me code for floating using values stored in the variables.the ans i get is integer and if i input floating values i get error numeric constant missing plz help


Code:
case $choice in

"1")
        add=`expr $a + $b`
        echo $add
        ;;

"2")
        sub=`expr $a - $b`
        echo $sub
        ;;

"3")

        mul=`expr $a \\* $b`
        echo $mul
        ;;
"4")
        div=`expr $a / $b`
        echo $div
        ;;

esac


Last edited by Scott; 02-01-2010 at 02:37 PM.. Reason: Please use code tags
# 2  
Old 02-01-2010
You are correct - you need awk, perl, bc, etc. to do floating point arithmetic.
Not shell - shell does not support FP.
# 3  
Old 02-01-2010
Code:
add=`echo "scale=1; $a / $b " | bc`

# 4  
Old 02-01-2010
thanks buddy
it is not possible with expr to get floating poin answers
# 5  
Old 02-01-2010
Quote:
Originally Posted by sumit the cool
thanks buddy
it is not possible with expr to get floating poin answers
Correct (it's not possible).

Some newer shells, like ksh93 support floating point arithmetic, but for portability it's probably best to use bc.
# 6  
Old 02-01-2010
A challenge could be to write a shell script that performs FP arithmetics.
# 7  
Old 02-01-2010
Depending on the fractional resolution you require you can scale up all the numbers and use the fixed-point arithmetics. Other than this - it's not possible to have FP in shell as FP instructions are not a must-have for a Unix system machine and shells should be as portable as possible. For same reason i.e. Linux kernel does not have any floating point operation as well.

frans:
Below script:
Code:
echo "1 / 2" | bc -l

is a valid shell script performing FP arithmetics. But I know what you meant. Smilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. OS X (Apple)

Gobsmacked by ksh93 floating point arithmetic.

Hi guys... I am working on limited basic set of maths routines for ksh93 that can be sourced as . ./ksh_math.sh and I am gobsmacked by its capabilities. Although some big guns may already know this, I didn't, and ksh93 is easily able to do floating point numbers to floating point powers and... (16 Replies)
Discussion started by: wisecracker
16 Replies

2. Shell Programming and Scripting

BC calculation for floating (invalid arithmetic operator )

Hi, I wish to compare the CPU LOAD 1 min with 5mins and 15mins. If 1 min's CPU LOAd spike 3% compare to 5 mins or 15 mins CPU Load, it is warning. If 1 min's CPU LOAd spike 5% compare to 5 mins or 15 mins CPU Load, it is critical. However I received following code error, I google it and... (10 Replies)
Discussion started by: alvintiow
10 Replies

3. Shell Programming and Scripting

floating point arithmetic operation error

I am writing a script in zsh shell, it fetchs a number from a file using the awk command, store it as a variable, which in my case is a small number 0.62000. I want to change this number by multiplying it by 1000 to become 620.0 using the command in the script var2=$((var1*1000)) trouble is... (2 Replies)
Discussion started by: piynik
2 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

how to compare 2 floating point no.

Hi, Could any one tell me how to compare to floating point no. using test command. As -eq option works on only intergers. i=5.4 if then echo "equal" else echo "not equal" fi here output will be equal even though no. are unequal. Thanks, ravi (1 Reply)
Discussion started by: useless79
1 Replies

6. Linux

Floating Point Exception

Hi, I am compiling "HelloWorld" C progam on 32-bit CentOS and i want to execute it on 64-bit CentOS architecture. For that i copied the a.out file from 32-bit to 64-bit machine, but while executing a.out file on 64bit machine I am getting "Floating point exception error". But we can run... (3 Replies)
Discussion started by: Mandar123
3 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. Shell Programming and Scripting

Rounding off the value of Floating point value

Hello, i have some variables say: x=1.4 y=3.7 I wish to round off these values to : x = 2 (after rounding off) y = 4 (after rounding off) I am stuck. Please help. (7 Replies)
Discussion started by: damansingh
7 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