Python - K length decimal Places

In Python, controlling decimal precision is essential for mathematical calculations and data formatting. This article explores various methods to format decimal numbers to k decimal places using built-in functions and external libraries.

Using round() Method

The round() function is Python's built-in method for controlling decimal precision. It follows mathematical rounding rules.

Syntax

round(number, k)

Where number is the decimal number and k is the number of decimal places.

Example

def round_off(number, k):
    rounded = round(number, k)  
    return rounded  

k = 3
number = 3.141592653589793
result = round_off(number, k)
print(f"The number {number} rounded to {k} decimal places is: {result}")
The number 3.141592653589793 rounded to 3 decimal places is: 3.142

Using String Formatting

String formatting provides more control over decimal display and can truncate rather than round numbers.

Syntax

f"%.{k}f" % number

Example

def format_decimal(number, k):
    formatted = f"%.{k}f" % number  
    return formatted

k = 5
number = 7.7486492653
result = format_decimal(number, k)
print(f"The number {number} formatted to {k} decimal places is: {result}")
The number 7.7486492653 formatted to 5 decimal places is: 7.74865

Setting Global Precision with Decimal

The decimal module provides precise decimal arithmetic and resolves floating-point representation issues.

Example

from decimal import Decimal, getcontext

# Default floating-point arithmetic
print("Standard arithmetic:", 1.1 + 2.2)

# Set global precision
getcontext().prec = 16
result = Decimal(1.1) + Decimal(2.2)
print("Decimal arithmetic:", result)
Standard arithmetic: 3.3000000000000003
Decimal arithmetic: 3.300000000000000

Using NumPy Library

NumPy's around() function handles arrays of numbers efficiently for batch decimal formatting.

Example

import numpy as np

def round_array(numbers_array, k):
    rounded = np.around(numbers_array, decimals=k)  
    return rounded

k = 3
numbers = [7.7486492653, 5.634534534, 64.345345345]
rounded_numbers = round_array(numbers, k)

print(f"Original numbers: {numbers}")
print(f"Rounded to {k} decimal places: {rounded_numbers}")
Original numbers: [7.7486492653, 5.634534534, 64.345345345]
Rounded to 3 decimal places: [ 7.749  5.635 64.345]

Comparison of Methods

Method Best For Handles Arrays Precision Control
round() Simple rounding No Basic
String formatting Display formatting No Good
Decimal module High precision math No Excellent
NumPy Array operations Yes Good

Conclusion

Use round() for simple decimal formatting, string formatting for display purposes, the decimal module for high-precision calculations, and NumPy for array operations. Choose the method that best fits your specific precision and performance requirements.

---
Updated on: 2026-03-27T08:31:25+05:30

338 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements