Skip to main content
Taught by Tech Leads

Master pipelines, cloud & AI to become an operational Data Engineer.

DataScientist.fr
Image de How to format floating-point numbers with f-strings? Interactive Python tutorial.
Python

How to format floating-point numbers with f-strings? Interactive Python tutorial.

Photo de Romain DE LA SOUCHÈRE

Tech Lead, CTO AXI Technologies

Published on 2 janvier 2025 · 12 min of reading

In the world of software development, formatting floating-point numbers is an essential skill for producing accurate and user-friendly applications. Whether it's adjusting string widths, mastering scientific notation, or ensuring a consistent representation of complex numbers, these techniques are indispensable. This article guides you through the intricacies of formatting with f-strings, so you can create flawless numerical outputs while navigating the pitfalls of approximations due to floating-point limits. Let's dive together into this fascinating and technical universe.

How to format and round a floating-point number in an f-string

To format and round a floating-point number in an f-string in Python, you can leverage the flexibility and simplicity of f-strings to improve the readability and precision of your code. Here’s how to proceed:

Using f-strings for formatting

F-strings, introduced in Python 3.6, allow you to embed Python expressions directly within string literals using the syntax . To format a floating-point number, you can specify the desired number of decimal places after the : character within the braces.
python
In this example, .2f indicates that the number should be formatted as a floating-point number with two decimal places.

Rounding to a specific number of decimal places

Sometimes, you need to control the rounding of floating-point numbers. The format .nf where n is an integer, allows you to specify exactly how many decimal places you want to display, rounding the extra digit if necessary.
python

Formatting with thousands separators

To enhance the readability of large numbers, you can also use thousands separators. F-strings allow this by adding a comma before the formatting specifier.
python

Scientific formatting

F-strings also support scientific formatting, which is useful for very large or very small numbers. Use e or E to represent numbers in scientific notation.
python

Using spaces for alignment

In cases where you want to align your outputs, such as in tables or reports, you can specify a minimum width for the field. This adds spaces to fill the string if necessary.
python
In summary, f-strings provide a concise and powerful method for formatting and rounding floating-point numbers in Python, thus facilitating the management of numerical outputs in your applications.

Customizing the width of your formatted strings

Customizing the width of your formatted strings is a key feature for enhancing the presentation and organization of data, especially when working with aligned outputs or columns in tables. Python's f-strings provide tools to easily adjust the width of your strings.

Defining a minimum width

To define a minimum width for a formatted string, specify a number after the : character within the braces. This ensures that the output occupies at least that space, filling with spaces if necessary.
python
In this example, the minimum width is 5 characters. If the formatted number is shorter, spaces are added to the left.

Text alignment

You can control the text alignment within the specified space. Use <, >, or ^ to align left, right, or center respectively.
python

Custom filling

By default, the space used to reach the minimum width is filled with spaces. You can customize this fill character by specifying it right after the :.
python

Practical applications

These techniques are particularly useful when generating reports or console displays where a neat presentation is crucial. For example, in displaying tabular data where each column needs to be well aligned for better readability.
python
This script produces aligned output, making it easier to compare scores.
By mastering these formatting techniques, you can adapt your Python outputs to be not only informative but also aesthetically pleasing and easy to read.

Controlling the placement of number signs

Controlling the placement of number signs is an important feature when formatting numbers in Python, especially to ensure clarity of financial or scientific data. F-strings offer flexible options for handling the + and - signs when formatting numbers.

Explicitly displaying signs

By default, Python does not display the + sign for positive numbers, only the - for negatives. To force the display of the + sign, use the + specifier in your f-string.
python
This method is useful when you want all numbers to appear with their respective signs, for example in financial contexts.

Spaces for signs

If you prefer a space instead of the sign for positive numbers, use the formatting specifier (space). This can enhance readability by aligning the numbers for calculations or comparisons.
python
Using a space allows for consistent alignment while differentiating positive and negative numbers.

Application in tables

Sign control is particularly relevant in data tables where uniform presentation is crucial. Ensure that all numbers are formatted consistently to avoid confusion.
python
This code aligns the numbers in a uniform column while explicitly displaying the signs, which is essential for correct data interpretation.
By adopting these methods, you can master the display of signs in your Python outputs, ensuring clear and precise communication of your numerical data.

Rounding scientific notation and complex numbers

The use of scientific notation and manipulation of complex numbers can be essential in various scientific and financial fields. Python, with its f-strings, facilitates rounding and formatting of these types of data.

Scientific notation

Scientific notation is commonly used to represent very large or very small numbers. With f-strings, you can control the display and rounding of these numbers using the e or E specifier.
python
In this example, .3e means we want to round the number to three significant figures after the decimal point.

Rounding complex numbers

Complex numbers, consisting of a real part and an imaginary part, are often used in engineering and physics. F-strings allow you to format each part separately.
python
Here, we round each part of the complex number to two decimal places, which can be crucial for accurate calculations and clear presentation.

Practical applications

These techniques are particularly useful in scientific applications where precision and readability are essential. For example, when presenting experimental results or modeling in documents or reports.
python
This script demonstrates how to handle and format both scientific notation and complex numbers in a mixed dataset.
By mastering these methods, you can effectively manage and present complex and scientific data in your Python projects, ensuring both accuracy and clarity.

Using decimal objects to mitigate floating-point inaccuracies

Floating-point numbers in Python can sometimes exhibit inaccuracies due to how they are represented in binary. To mitigate these inaccuracies, using the decimal module is often recommended. This module provides a Decimal class that allows for calculations with arbitrary precision.

Creating Decimal objects

To start using Decimal, you first need to import the decimal module. Then, you can create Decimal objects from numbers or strings.
python
By using Decimal, you achieve an accurate result of 0.3, unlike the approximate result obtained with floats.

Controlling precision

One of the great strengths of Decimal is the ability to control the precision of calculations. You can set a global or temporary calculation context that specifies the number of significant digits.
python
In this example, the precision is set to six significant digits, which influences the final result.

Comparison with floats

Using Decimal is particularly beneficial in financial applications where precision is crucial. Unlike floats, Decimal ensures that monetary calculations are exact.
python
This comparison shows that Decimal preserves the accuracy of monetary calculations, avoiding common rounding errors associated with floats.
Adopting Decimal objects in your Python programs allows you to handle numerical calculations with increased precision, thereby reducing the risk of errors in applications where precision is essential.

Formatting strings in other ways

In addition to formatting numbers, Python offers many ways to format strings, which can make your code more readable and your outputs more aesthetically pleasing. F-strings, with their flexibility, play a key role in this task.

Manipulating string case

Changing the case of a string is a common operation. You can use the built-in string methods for this.
python
These methods allow for normalizing the text presentation, which is useful for displaying titles or names.

Truncating strings

Sometimes, it is necessary to truncate a string to ensure it fits into a limited space. F-strings allow this by specifying a maximum width.
python
Truncation is particularly useful in user interfaces where space is limited.

Filling and alignment

F-strings offer options for aligning and filling strings, which is useful for formatting tabular outputs.
python
By using < or >, you can align the text to the left or right, adding spaces to reach the specified width.

Conditional formatting

With f-strings, you can also implement conditional formats, which is useful for displaying dynamic messages.
python
Conditional formatting allows you to adapt your outputs to different situations, making your code more dynamic and interactive.
With these techniques, you can format your strings flexibly and creatively, thereby enhancing the quality and clarity of your Python outputs.

Formatting numbers for international use

Formatting numbers for international use can be challenging due to the various numbering and currency conventions around the world. Python provides powerful tools to manage these variations, ensuring that your applications are suitable for a global audience.

Using the locale module

The locale module in Python is designed to facilitate number formatting according to local conventions. It allows you to display numbers with the correct thousands and decimal separators based on the specified region.
python
By setting the locale to fr_FR.UTF-8, the separators are adjusted to match the French standard.

Currency formatting

For financial applications, it is crucial to format currencies correctly. The locale module can also be used for this.
python
This method ensures that monetary symbols and numerical formats align with the cultural expectations of the user.

Additional considerations

It is important to check the availability of locales on your system, as some locales may not be installed by default. Use the following command to list available locales:
textile

Managing date and time formats

Although focused on numbers, the locale module can also format dates and times according to local conventions, which is often necessary in applications that require full internationalization.
python
By mastering number formatting for international use, you can create Python applications that communicate effectively with users around the world, respecting their cultural preferences.

Conclusion

In summary, formatting numbers and strings in Python, using f-strings and tools such as Decimal objects and the locale module, offers incredible flexibility to meet various programming needs. These techniques allow you not only to present data clearly and accurately but also to adapt to the multicultural and multilingual demands of international users.

Summary of formatting techniques

We have explored how f-strings facilitate the formatting and rounding of floating-point numbers, and how they allow for customizing the width and alignment of strings. These features are essential for producing neat and aligned outputs, suitable for various contexts such as financial or scientific reports.
The use of Decimal objects is particularly advantageous when precision is crucial, avoiding rounding errors associated with floats. This is especially relevant in financial applications where every cent counts.

Importance of international formatting

Adapting your applications for international use is no longer an option but a necessity in today’s globalized world. With the locale module, Python allows for formatting numbers and currencies according to local conventions, ensuring that your application is culturally relevant for users around the globe.

Implications for developers

For developers, mastering these formatting techniques means not only improving the aesthetics and readability of your program's outputs but also ensuring the accuracy of the presented data. This leads to a better user experience and greater trust in the results provided by your applications.
In conclusion, whether you are developing a simple application or a complex system for an international market, Python formatting skills will enable you to deliver robust solutions that meet your users' needs. By continuing to explore and master these tools, you will be well-equipped to tackle the challenges of modern programming while ensuring clear and precise presentation of information.

Want to go further?

This topic is part of our Become a Data Analyst course. Browse the full programme, or get it by email.

Share with

Photo de Romain DE LA SOUCHÈRE

Romain DE LA SOUCHÈRE

Tech Lead, CTO AXI Technologies

Expert Data Engineering et Cloud, Romain affiche plus de 11 ans d'expérience, dont plusieurs années comme Lead Developer sur des solutions Smart Building haute performance. Il y a conçu et mis en production des moteurs de traitement capables d'absorber des centaines de milliers de données de capteurs par minute, ainsi que des bases clusterisées gérant plus de 10 millions de données dynamiques. Certifié Microsoft Azure DevOps Engineer Expert, il maîtrise aussi bien le développement back-end (Python, C#) que le DevOps (Docker, Kubernetes, Terraform) et les agents LLM. Formateur en Python, cloud, DevOps et IA générative appliquée, il forme avec une obsession : Amener chaque apprenant à concevoir et déployer des architectures réellement scalables en production.

» Learn More

Associated trainings

All our trainings
Image de la formation Become a Data Analyst
Become a Data Analyst
6 months
Intermediate
Guarantee