Floating point numbers have a complex representation using base 2 rather than base 10. Scientific notation is close enough to understand what is happening. With scientific notation, we want a number between 1 and 10 multiplied by a power of 10: 8080.9940 = 8.0809940 * 10^3 and we can check that out with bc:
But now we need to do that in binary... We want a number between 1 and 10 in binary (which means 1 and 2 in decimal) that can be multiplied by a power of 10 in binary to yield the decimal number 8080.9940. Fortunately, you picked an easy number! It's is obvious that dividing it by 4096 will yield a number between 1 and 2. So let's use bc to do this...
Now repeat the last operation, but replace 1.11111001000011111110011101101100100 with some other close-by binary number. No matter what you try, you cannot get exactly 8080.9940 Floating point numbers are bit more complex than this, but the exact same issue arises with them. There is no way to exactly represent 8080.9940 as a floating point number.
Does anyone have a simple way of doing floating point ("fp") division? For example, if I divide 3 by 5, I can get 0.6. The built-in calc (`bc`) will perform fp multiplication, but not division, at least not straight-up (i.e., starting bc and just typing in 3/5).
I am trying to do this using... (1 Reply)
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)
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)
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)
Here's a program and its pretty simple .It requires file handling and some calculations but on running it I am not getting the required result.It seems that the code outside the file read's outer while loop is not executing e.g the print statement is not being printed.Plz Help!
#include<stdio.h>... (1 Reply)
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)
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... (6 Replies)
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)
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
LEARN ABOUT SUNOS
num
Num(3o) OCaml library Num(3o)NAME
Num - Operation on arbitrary-precision numbers.
Module
Module Num
Documentation
Module Num
: sig end
Operation on arbitrary-precision numbers.
Numbers (type num ) are arbitrary-precision rational numbers, plus the special elements 1/0 (infinity) and 0/0 (undefined).
type num =
| Int of int
| Big_int of Big_int.big_int
| Ratio of Ratio.ratio
The type of numbers.
=== Arithmetic operations ===
val (+/) : num -> num -> num
Same as Num.add_num .
val add_num : num -> num -> num
Addition
val minus_num : num -> num
Unary negation.
val (-/) : num -> num -> num
Same as Num.sub_num .
val sub_num : num -> num -> num
Subtraction
val ( */ ) : num -> num -> num
Same as Num.mult_num .
val mult_num : num -> num -> num
Multiplication
val square_num : num -> num
Squaring
val (//) : num -> num -> num
Same as Num.div_num .
val div_num : num -> num -> num
Division
val quo_num : num -> num -> num
Euclidean division: quotient.
val mod_num : num -> num -> num
Euclidean division: remainder.
val ( **/ ) : num -> num -> num
Same as Num.power_num .
val power_num : num -> num -> num
Exponentiation
val abs_num : num -> num
Absolute value.
val succ_num : num -> num
succ n is n+1
val pred_num : num -> num
pred n is n-1
val incr_num : num Pervasives.ref -> unit
incr r is r:=!r+1 , where r is a reference to a number.
val decr_num : num Pervasives.ref -> unit
decr r is r:=!r-1 , where r is a reference to a number.
val is_integer_num : num -> bool
Test if a number is an integer
=== The four following functions approximate a number by an integer : ===
val integer_num : num -> num
integer_num n returns the integer closest to n . In case of ties, rounds towards zero.
val floor_num : num -> num
floor_num n returns the largest integer smaller or equal to n .
val round_num : num -> num
round_num n returns the integer closest to n . In case of ties, rounds off zero.
val ceiling_num : num -> num
ceiling_num n returns the smallest integer bigger or equal to n .
val sign_num : num -> int
Return -1 , 0 or 1 according to the sign of the argument.
=== Comparisons between numbers ===
val (=/) : num -> num -> bool
val (</) : num -> num -> bool
val (>/) : num -> num -> bool
val (<=/) : num -> num -> bool
val (>=/) : num -> num -> bool
val (<>/) : num -> num -> bool
val eq_num : num -> num -> bool
val lt_num : num -> num -> bool
val le_num : num -> num -> bool
val gt_num : num -> num -> bool
val ge_num : num -> num -> bool
val compare_num : num -> num -> int
Return -1 , 0 or 1 if the first argument is less than, equal to, or greater than the second argument.
val max_num : num -> num -> num
Return the greater of the two arguments.
val min_num : num -> num -> num
Return the smaller of the two arguments.
=== Coercions with strings ===
val string_of_num : num -> string
Convert a number to a string, using fractional notation.
val approx_num_fix : int -> num -> string
See Num.approx_num_exp .
val approx_num_exp : int -> num -> string
Approximate a number by a decimal. The first argument is the required precision. The second argument is the number to approximate.
Num.approx_num_fix uses decimal notation; the first argument is the number of digits after the decimal point. approx_num_exp uses scien-
tific (exponential) notation; the first argument is the number of digits in the mantissa.
val num_of_string : string -> num
Convert a string to a number.
=== Coercions between numerical types ===
val int_of_num : num -> int
val num_of_int : int -> num
val nat_of_num : num -> Nat.nat
val num_of_nat : Nat.nat -> num
val num_of_big_int : Big_int.big_int -> num
val big_int_of_num : num -> Big_int.big_int
val ratio_of_num : num -> Ratio.ratio
val num_of_ratio : Ratio.ratio -> num
val float_of_num : num -> float
OCamldoc 2012-06-26 Num(3o)