How to restrict Rounding using Printf?


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers How to restrict Rounding using Printf?
# 1  
Old 12-09-2013
How to restrict Rounding using Printf?

Hello,
I am using bash shell on Linux OS, May i please know why is it rounding for big numbers but not for others, is there a workaround to print it as it is with out round off?

Code:
printf '%'\''.2f\n' 9999999999999999999.99
10,000,000,000,000,000,000.00

Code:
printf '%'\''.2f\n' 99999999999999.99
99,999,999,999,999.99

Thank you.
# 2  
Old 12-09-2013
Floating point numbers do not have infinite precision. They are a fixed number of bits multiplied by two to a mantissa. If you keep adding zeroes, sooner or later it will run out of space in the base number and have to truncate(not round) and increase the mantissa instead.

If you require calculation with infinite precision, the bc utility does exactly this.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Rounding off a decimal

How to round off a decimal number to higher whole number using ceil command in unix? Eg. 4.41 or 4.11 or 4.51 should be rounded off to 5. (11 Replies)
Discussion started by: SanjayKumar28
11 Replies

2. Shell Programming and Scripting

printf (awk,perl,shell) float rounding issue

Hi guys, could someone throw some light on the following behaviour of printf (I'll start with info about the system and the tool/shell/interpreter versions)?: $ uname -a Linux linux-86if.site 3.1.0-1.2-desktop #1 SMP PREEMPT Thu Nov 3 14:45:45 UTC 2011 (187dde0) x86_64 x86_64 x86_64... (9 Replies)
Discussion started by: elixir_sinari
9 Replies

3. Shell Programming and Scripting

Rounding number, but....

Dear Experts, I'm trying to find a way to round a number but in this way: 14367.577 ---> 14000 I used the following to round the number to the closer integer: echo $var|awk '{print int($1+0.5)}' and also: xargs printf "%1.0f" However, they don't work for my above... (9 Replies)
Discussion started by: Gery
9 Replies

4. Shell Programming and Scripting

AWK rounding up numbers

Hi, I have managed to round up numbers by using the following command: echo "5.54" | awk '{printf "%.0f\n", $1}' result 6 How can I round up all the numbers in a column in a file and print the lines with the new calculated totals? Thanks, (3 Replies)
Discussion started by: keenboy100
3 Replies

5. UNIX for Dummies Questions & Answers

Rounding a decimal

Hi, I am currently using tcsh I am trying to round a decimal number to the ten-thousandths place For instance: 1.23456 is rounded up towards 1.2346 I am not looking for truncation, but for rounding. Anyone know how to do this with awk or expr? Thanks (2 Replies)
Discussion started by: miniwheats
2 Replies

6. Shell Programming and Scripting

Rounding Script Help

I need some help with my rouding script. I have started pretty much from scratch and have no idea if its correct or even close but I have been trying and have gotten to this point. i keep getting syntax errors and im not sure what is wrong. Here is what I got let value=$1; while do let... (4 Replies)
Discussion started by: kingrj46
4 Replies

7. Linux

Rounding Script Help

I need some help with my rouding script. I have started pretty much from scratch and have no idea if its correct or even close but I have been trying and have gotten to this point. i keep getting syntax errors and im not sure what is wrong. Here is what I got let value=$1; while do let... (0 Replies)
Discussion started by: kingrj46
0 Replies

8. Shell Programming and Scripting

Rounding off to the next whole number

Hello, I searched a lot on this Forum. Please help me with the below problem. I want to divide two numbers and the result should be the next nearest whole number. E.G. Dividing 10.8/5 ideally gives 2.16. But the result should be 3 i.e. rounded off to the next whole number. Any help will... (2 Replies)
Discussion started by: damansingh
2 Replies

9. UNIX for Dummies Questions & Answers

Rounding problem

Hi, Can any one help me in finding a solution for rounding off to 2 decimal places. I am using the following code: VAR1=.01292105263157894736 VAR2=`echo "scale=2; $VAR1 * 100" | bc -l` The result I 'm getting is 1.29210526315789473600 But I need the output as 1.29 Thanks Shash (2 Replies)
Discussion started by: shash
2 Replies

10. Shell Programming and Scripting

Rounding off using BC.

Hello again. I'm trying to use BC to calculate some numbers in a shell script. I want to have the numbers rounded off to 1 decimal place. for example: initsize=1566720 zipsize=4733 I'm trying to get the ratio between them. the equation is: (($initsize-$zipsize)/$initsize)*100 so... (3 Replies)
Discussion started by: noodlesoup
3 Replies
Login or Register to Ask a Question