Round-off a number to a given number of significant digits
Given a positive number n (n > 1), round-off this number to a given no. of significant digits, d.
Examples:
Input : n = 139.59
d = 4
Output : The number after rounding-off is 139.6 .
The number 139.59 has 5 significant figures and for rounding-off
the number to 4 significant figures, 139.59 is converted to 139.6 .
Input : n = 1240
d = 2
Output : The number after rounding-off is 1200 .
What are significant figures?
Each of the digits of a number that are used to express it to the required degree of accuracy, starting from the first non-zero digit, are called as significant figures.
Since there are numbers with large number of digits, for example, = 3.142857143, so in order to limit such numbers to a manageable number of digits, we drop unwanted digits and this process is called rounding off.
Significant digits include all the digits in a number falling in one of the following categories –
- All non-zero digits.
- Zero digits which-
- lie between significant digits.
- lie to the right of decimal point and at the same time to the right of a non-zero digit.
- are specifically indicated to be significant.
The following table shows numbers and no. of significant digits present in them –
Rules for Rounding-off a Number
To round off a number to n significant figures-
- Discard all digits to the right of nth significant digit.
- If this discarded number is-
- less than half a unit in nthplace, leave the nth digit unchanged.
- greater than half a unit in the nth place, increase the nth digit by unity.
- exactly half a unit in the nth place, increase the nth digit by unity if its odd, otherwise leave it unchanged.
The following table shows rounding-off a number to a given no. of significant digits –
C++
#include <bits/stdc++.h>
using namespace std;
void Round_off( double N, double n)
{
int h;
double l, a, b, c, d, e, i, j, m, f, g;
b = N;
c = floor (N);
for (i = 0; b >= 1; ++i)
b = b / 10;
d = n - i;
b = N;
b = b * pow (10, d);
e = b + 0.5;
if (( float )e == ( float ) ceil (b)) {
f = ( ceil (b));
h = f - 2;
if (h % 2 != 0) {
e = e - 1;
}
}
j = floor (e);
m = pow (10, d);
j = j / m;
cout << "The number after rounding-off is " << j;
}
int main()
{
double N, n;
N = 139.59;
n = 4;
Round_off(N, n);
return 0;
}
|
Java
import java.io.*;
import static java.lang.Math.*;
public class A {
static void Round_off( double N, double n)
{
int h;
double l, a, b, c, d, e, i, j, m, f, g;
b = N;
c = floor(N);
for (i = 0 ; b >= 1 ; ++i)
b = b / 10 ;
d = n - i;
b = N;
b = b * pow( 10 , d);
e = b + 0.5 ;
if (( float )e == ( float )ceil(b)) {
f = (ceil(b));
h = ( int )(f - 2 );
if (h % 2 != 0 ) {
e = e - 1 ;
}
}
j = floor(e);
m = pow( 10 , d);
j = j / m;
System.out.println( "The number after rounding-off is "
+ j);
}
public static void main(String args[])
{
double N, n;
N = 139.59 ;
n = 4 ;
Round_off(N, n);
}
}
|
Python3
from math import ceil, floor, pow
def Round_off(N, n):
b = N
c = floor(N)
i = 0 ;
while (b > = 1 ):
b = b / 10
i = i + 1
d = n - i
b = N
b = b * pow ( 10 , d)
e = b + 0.5
if ( float (e) = = float (ceil(b))):
f = (ceil(b))
h = f - 2
if (h % 2 ! = 0 ):
e = e - 1
j = floor(e)
m = pow ( 10 , d)
j = j / m
print ( "The number after rounding-off is" , j)
if __name__ = = '__main__' :
N = 139.59
n = 4
Round_off(N, n)
|
C#
using System;
class A {
static void Round_off( double N, double n)
{
int h;
double b, d, e, i, j, m, f;
b = N;
for (i = 0; b >= 1; ++i)
b = b / 10;
d = n - i;
b = N;
b = b * Math.Pow(10, d);
e = b + 0.5;
if (( float )e == ( float )Math.Ceiling(b)) {
f = (Math.Ceiling(b));
h = ( int )(f - 2);
if (h % 2 != 0) {
e = e - 1;
}
}
j = Math.Floor(e);
m = Math.Pow(10, d);
j = j / m;
Console.WriteLine( "The number after " +
"rounding-off is " + j);
}
public static void Main()
{
double N, n;
N = 139.59;
n = 4;
Round_off(N, n);
}
}
|
PHP
<?php
function Round_off( $N , $n )
{
$h ;
$l ; $a ; $b ; $c ;
$d ; $e ; $i ; $j ;
$m ; $f ; $g ;
$b = $N ;
$c = floor ( $N );
for ( $i = 0; $b >= 1; ++ $i )
$b = $b / 10;
$d = $n - $i ;
$b = $N ;
$b = $b * pow(10, $d );
$e = $b + 0.5;
if ( $e == ceil ( $b ))
{
$f = ( ceil ( $b ));
$h = $f - 2;
if ( $h % 2 != 0)
{
$e = $e - 1;
}
}
$j = floor ( $e );
$m = pow(10, $d );
$j = $j / $m ;
echo "The number after rounding-off is " , $j ;
}
$N ; $n ;
$N = 139.59;
$n = 4;
Round_off( $N , $n );
?>
|
Javascript
<script>
function Round_off(N , n)
{
var h;
var l, a, b, c, d, e, i, j, m, f, g;
b = N;
c = Math.floor(N);
for (i = 0; b >= 1; ++i)
b = parseInt(b / 10);
d = n - i;
b = N;
b = b * Math.pow(10, d);
e = b + 0.5;
if (e == Math.ceil(b)) {
f = (Math.ceil(b));
h = parseInt(f - 2);
if (h % 2 != 0) {
e = e - 1;
}
}
j = Math.floor(e);
m = Math.pow(10, d);
j = j / m;
document.write( "The number after rounding-off is "
+ j);
}
var N, n;
N = 139.59;
n = 4;
Round_off(N, n);
</script>
|
Output:
The number after rounding-off is 139.6
Time complexity: O(logN)
Space complexity: O(1)
Last Updated :
16 Feb, 2023
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...