You are currently viewing Convert String to Decimal in Python

How to convert a string to a decimal in Python? In Python, you can convert a string to a decimal number using multiple ways. One of the ways is to use the decimal module, which provides a Decimal class for high-precision arithmetic and another simple way is to use the built-in float() function.

Advertisements

You can convert a string to decimal in Python using many ways, for example, by using decimal module, float(), string formatting, astype(), and numpy.float() functions. In this article, I will explain various ways of converting a string to a decimal by using all these methods with examples.

1. Quick Examples of Converting String to Decimal

If you are in a hurry, below are some quick examples of how to convert string to decimal.


# Quick examples of converting string to decimal

from decimal import Decimal
import numpy as np

# Initialization of the string
string = "3.2583"

# Example 1: Using a decimal module
# Convert string to decimal 
decimal_number = Decimal(string)

# Example 2: Using float() function
# Convert string to decimal 
decimal_number = float(string)

# Example 3: Use string formatting 
# Along with the float() function
decimal_number = float(string)
formatted_decimal = "{:.2f}".format(decimal_number)

# Example 4: Using astype() method from the numpy library
# Convert string to decimal 
float_number = np.array([string]).astype(float)

# Example 5: Using numpy.float() function 
# Convert a string to decimal 
float_number = np.float(string)

2. Convert String to Decimal Using decimal Module

To convert a string to a decimal using the decimal module, you simply need to import the module and use the Decimal() function. For instance, you can apply the Decimal class from the decimal module to a given string "3.2583" to convert it to a decimal number. The resulting decimal number is then printed.

Remember that using the decimal module allows for precise floating-point arithmetic, which is particularly useful when dealing with financial or other applications where precision is crucial.


from decimal import Decimal

# Initialization the string
string = "3.2583"

# Using decimal module
# Convert string to decimal 
decimal_number = Decimal(string)
print("Original string:", string) 
print("After converting the string to decimal:", decimal_number)

Yields below output.

python convert string decimal

3. Convert String to Decimal Using float() Function

You can also convert a string to a decimal using the float() function in Python. For instance, the float() function is used to convert the string "3.2583" into a floating-point number named float_number. The original string and the converted floating-point number are then printed.

Please note that using the float() function may not provide precise decimal representation, especially for large decimal values.


# Initialization the string
string = "3.2583"

# Using float() function
# Convert string to decimal 
decimal_number = float(string)
print("Original string:", string) 
print("After converting the string to decimal:", decimal_number)

Yields the same output as above.

4. Using String Formatting Along With the float() Function

You can use string formatting to control the precision of a floating-point number when converting a string to a decimal using the float() function. For example, the "{:.2f}".format(decimal_number) syntax is used for string formatting. Here, ".2f" specifies that the floating-point number (decimal_number) should be formatted with 2 decimal places. You can adjust the number 2 to control the precision of the output.

Keep in mind that using the float() function followed by string formatting will give you a string representation of the decimal number with the desired precision. If you need precise decimal arithmetic, especially for calculations, it’s still advisable to use the decimal module as mentioned in the first response.


# Initialization the string
string = "3.2583"

# Use string formatting 
# Along with the float() function
decimal_number = float(string)
formatted_decimal = "{:.2f}".format(decimal_number)
print("Original string:",string) 
print("After converting the string to decimal:",formatted_decimal)

# Output:
# Original string: 3.2583
# After converting the string to decimal: 3.26

5. Convert String to Decimal Using NumPy astype() Method

NumPy does indeed have a astype() method that can be used to convert the data type of a NumPy array. Here’s how you can use the astype() method to convert a string to a floating-point number in Python.

In the below example, the np.array([string]) creates a NumPy array containing the string "3.2583". Then, the astype(np.float) method is used to convert the elements of the array to floating-point numbers. Finally, the original string and the converted floating-point number are printed.


import numpy as np

# Initialization the string
string = "3.2583"

# Using astype() method from the numpy library
# Convert string to decimal 
float_number = np.array([string]).astype(float)
print("Original string:",string) 
print("After converting the string to decimal:",float_number)

# Output:
# Original string: 3.2583
# After converting the string to decimal: [3.2583]

6. Convert a String to Decimal Using numpy.float() Function

To convert a string to a floating-point number using NumPy’s numpy.float() function, first, you can create a NumPy array containing the string and then apply the numpy.float() function. For instance, the np.float() function is used to convert the input string "3.2583" to a floating-point number. The resulting float_number variable contains the converted floating-point number.

Please note that using the numpy.float() function will give you a floating-point representation of the number, not a precise decimal representation. If you need precise decimal arithmetic, especially for calculations, it’s recommended to use the decimal module as shown in the earlier examples.


import numpy as np

# Initialization the string
string = "3.2583"

# Using numpy.float() function 
# Convert a string to decimal 
float_number = np.float(string)
print("Original string:",string) 
print("After converting the string to decimal:",float_number)

# Output:
# Original string: 3.2583
# After converting the string to decimal: 3.2583

Conclusion

In this article, I have explained multiple ways of converting a string to decimal in Python by using decimal module, float(), string formatting, astype(), and numpy.float() functions with examples.

Happy Learning !!