Random float numbers in BASH


Login or Register for Dates, Times and to Reply

 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Random float numbers in BASH
# 1  
Random float numbers in BASH

Hi people Smilie

I'm learning shell scripting using bash and I want to generate 4 floating point number with 5 decimal places and write them to a file and a variable. I've done all this except the $RAMDOM enviroment variable does not generate a float number but a integrer.

I hope you could explain why to lead me to a solution.
Thnak you all in advance.

PS: script so far
Code:
#!/bin/bash

#: Title		: randomFloats
#: Date			: 2011-03-27
#: Author		: pharaoh
#: Version		: 1.0 
#: Discription	        : Generate a 4 float numbers with 5 decimal places and write them to a file and a variable 


listFloats=0.0
for i in $(seq 0 3)
do
    aux=$[($RANDOM % 15000)]
	printf -v aux "%.5f" ${aux}
	
	#In the first iteration it just set the variable, in the others it append
	if [ ${i} -eq 0 ]
	then
		listFloats=${aux}
		printf ${aux} > randomFloats.txt
	else 
		listFloats="${listFloats} ${aux}"
		printf ${aux} >> randomFloats.txt
	fi
done

printf "%s\n" ${listFloats}

# 2  
BASH doesn't support floating point numbers.

How about generating random digits 0-9 and appending that into a floating point number?
This User Gave Thanks to Corona688 For This Post:
# 3  
As Corona688 says generate the digits for the 5 decimal places. I'd pick 3 digits then 2 as RANDOM won't go high enough to pick all 5

Code:
#!/bin/bash
listFloats=0.0
for i in {0..3}
do
   aux=$(printf "0.%03d%02d" $(( $RANDOM % 1000 )) $(( $RANDOM % 100)))
   if [ ${i} -eq 0 ]
   then
   ...

This User Gave Thanks to Chubler_XL For This Post:
# 4  
Thank you guys! I didn't knew that bash don't support floating point numbers.
That was very helpful.

---------- Post updated at 02:53 PM ---------- Previous update was at 02:52 PM ----------

Quote:
Originally Posted by Corona688
BASH doesn't support floating point numbers.

How about generating random digits 0-9 and appending that into a floating point number?
Man you are a Genius. I like your answer, thank you for passing the knowledge.
Login or Register for Dates, Times and to Reply

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #176
Difficulty: Easy
Apple's first product was the Apple I, invented by Apple co-founder Steve Wozniak.
True or False?

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Help about using variables of float numbers in sed

Hi, I need to run a Fortran program which reads a input file with a fixed name many times, each time I need to change a number (real) in that input file, this is how I currently do it and I know it is not elegent at all: cp inputfile.dat backup.dat sed -i 's/28.0/0.01/g' inputfile.dat ./myCode... (3 Replies)
Discussion started by: dypang
3 Replies

2. Shell Programming and Scripting

Arithmetic on a Float in bash

I am using bash I have a script that takes a number, i.e. 85.152, which is always a non integer and essentially tries to get that number to be a multiple of 10. My code is as follows: number=85.152 A=${number%.*} #Converts float to integer typeset -i B=$(((A-20)/10)) #subtracting 20 is... (12 Replies)
Discussion started by: prodigious8
12 Replies

3. Homework & Coursework Questions

Random numbers

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! Write a shell script that will take the sum of two random number? Ex: Random n1 +Random n2 = result i tries to write it but i had some dufficulties ... (3 Replies)
Discussion started by: renegade755
3 Replies

4. Shell Programming and Scripting

Generating random numbers

Hi, I am having trouble with generating random numbers. can this be done with awk? So I have a file that looks like this: 23 30 24 40 26 34 So column1 is start and column2 is end. I want to generate 3 random #'s between start and stop: So the output will look like this: ... (9 Replies)
Discussion started by: phil_heath
9 Replies

5. Programming

comparison between float numbers

Hi, i have a simple control like this: if(sum>1.0)... If i try to print sum i get 1.000000 but the check returns true. I think it depends on float precision. How can i modify the check? thanks (1 Reply)
Discussion started by: littleboyblu
1 Replies

6. Shell Programming and Scripting

Random numbers from 0 to 1000

Hello All, I want to make a simple script which generate random number from 0 to 1000. and simply display it. Plz HELP!!!!!! Regards, Waqas Ahmed (2 Replies)
Discussion started by: wakhan
2 Replies

7. Solaris

can array store float point numbers

Hi all, I have doubt can array in a shell script can store floating point numbers. i have tired. but i unable to work it out. Please help me regarding this Thank U Naree (1 Reply)
Discussion started by: naree
1 Replies

8. Solaris

i cannot assign float point numbers to an array in solaris

total=0 declare -a sum limit=`iostat -En | grep -i size | awk '{print $2}' | sed -e 's/GB//g' | wc -l` echo "Limit is equal to $limit" ara="`iostat -En | grep -i size | awk '{print $2}' | sed -e 's/GB//g'`" for (( i=1; i<=$limit; i++ )) do sum=`echo $ara | cut -d " " -f $i` echo ${sum}... (11 Replies)
Discussion started by: naree
11 Replies

9. Shell Programming and Scripting

adding float numbers

how to add 2 float values to each other? i tried this and it doesnt work: #!bin/bash numone=1.234 numtwo=0.124 total=`expr $numone + $numtwo` echo $total thanks (5 Replies)
Discussion started by: strike
5 Replies

Featured Tech Videos