---
title: تبدیل رشته به عدد در پایتون
description: تبدیل مقادیر از نوع داده رشته‌ای به اعشاری (float) یک کار رایج در پایتون است. این کار به ویژه هنگام مدیریت ورودی کاربر یا داده‌های منابع خارجی مفید است. این کار به کاربران امکان می‌دهد عملیات ریاضی را روی مقادیر عددی که در ابتدا به فرمت رشته بوده‌اند، انجام دهند.
url: "https://www.novinhost.org/docs/how-to-convert-string-to-float-in-python/"
updated: "2025-12-09"
category: تحقیق و توسعه / پایتون
---

# تبدیل رشته به عدد در پایتون

تبدیل مقادیر از نوع داده رشته‌ای به اعشاری (float) یک کار رایج در پایتون است. این کار به ویژه هنگام مدیریت ورودی کاربر یا داده‌های منابع خارجی مفید است. این کار به کاربران امکان می‌دهد عملیات ریاضی را روی مقادیر عددی که در ابتدا به فرمت رشته بوده‌اند، انجام دهند. [**سرور مجازی فنلاند**](https://www.novinhost.org/finland-vps/)

## تبدیل رشته به عدد اعشاری (Float)

چند روش برای تبدیل رشته به اعشار در پایتون وجود دارد. با این حال، ما در این مقاله فقط بر روی روش‌های زیر تمرکز خواهیم کرد.

1. با استفاده از `float()`تابع.
2. با استفاده از `Decimal()`تابع.
3. استفاده از ماژول 'ast' برای ارزیابی تحت‌اللفظی.
4. تبدیل رشته به اعشار با استفاده از Numpy
5. با استفاده از `json.loads()`.
6. با استفاده از یک تابع سفارشی.

حالا بیایید هر یک از این روش‌ها را با جزئیات بیشتری بررسی کنیم.

## استفاده از تابع float()

استفاده از این `float()`تابع رایج‌ترین روش برای تبدیل رشته به اعشار در پایتون است . علاوه بر این، این یک تابع داخلی است، به این معنی که با نصب استاندارد پایتون همراه است. می‌توانید یک مقدار رشته‌ای را به عنوان آرگومان به آن ارسال کنید و عدد اعشاری مربوطه را دریافت کنید. برای درک بهتر این موضوع، به مثال زیر نگاهی بیندازید.

```python
string_number  =  "13.86"

float_number  =  float(string_number)

print(float_number)

print(type(float_number))
```

**خروجی:**

![تبدیل رشته به عدد در پایتون](https://www.novinhost.org/wp-content/uploads/2025/12/1-1.png)
تبدیل رشته به عدد در پایتون

همانطور که می‌بینید، تابع float مقداری از را برمی‌گرداند `<class 'float'>`. با این حال، اگر مقدار ورودی ارسالی به آن یک عدد اعشاری معتبر نباشد، تابع یک خطای ValueError برمی‌گرداند. برای مثال، به بلوک کد زیر نگاه کنید.

```python
string_number  =  "invalid float"
float_number  =  float(string_number)
print(float_number)

print(type(float_number))
```

**خروجی:**

![تبدیل رشته به عدد در پایتون](https://www.novinhost.org/wp-content/uploads/2025/12/2.png)
 بنابراین، استفاده از مکانیزم‌های مناسب مدیریت خطا مانند بلوک‌های try-except هنگام کدنویسی بسیار مهم است. این رویکرد بسیار مفید است، به خصوص هنگام تبدیل ورودی‌های کاربر، زیرا نمی‌توانید پیش‌بینی کنید که کاربر چه نوع ورودی‌ای وارد خواهد کرد. مثال زیر نحوه استفاده از این `float()`تابع برای ورودی‌های کاربر را به بهترین شکل نشان می‌دهد.

```python
user_input  =  input("Enter a number: ")
try:
    float_number  =  float(user_input)
    print("Valid float:", float_number)
except  ValueError:
    print("This is not a valid floating-point number.")
```

## استفاده از تابع Decimal()

در پایتون، برای سناریوهایی که نیاز به دقت و صحت بالا در محاسبات ممیز شناور دارند، `Decimal()`می‌توان از تابع ماژول اعشاری استفاده کرد. نکته مهم در مورد این `Decimal()`تابع این است که در مقایسه با تابع داخلی `float()`که گاهی اوقات می‌تواند به دلیل نمایش ممیز شناور دودویی، خطای کوچکی ایجاد کند، دقیق‌تر است. این تابع یک رشته یا یک عدد را به عنوان آرگومان می‌گیرد و یک شیء اعشاری را برمی‌گرداند که دقیقاً عدد اعشاری مشخص شده را نشان می‌دهد.

```python
from  decimal  import  Decimal

string_number  =  "13.86"
decimal_number  =  Decimal(string_number)
print(decimal_number)
print(type(decimal_number))
```

**خروجی:**

![تبدیل رشته به عدد در پایتون](https://www.novinhost.org/wp-content/uploads/2025/12/3.png)
 همانطور که در تصویر بالا نشان داده شده است، تابع Decimal() مقداری از را برمی‌گرداند `<class 'decimal.Decimal'>`. اگر مقدار ورودی ارسالی به Decimal() یک عدد معتبر نباشد، مشابه `float()`تابع، خطای ValueError یا InvalidOperation را ایجاد می‌کند.

این `Decimal()`تابع به ویژه زمانی مفید است `float()`که به دقت بیشتری در محاسبات اعشاری، مانند محاسبات مالی یا محاسبات علمی، نیاز دارید.

## استفاده از ماژول 'ast' برای ارزیابی تحت‌اللفظی

روش دیگر برای تبدیل یک رشته به اعشاری، استفاده از ماژول ast (Abstract Syntax Trees) است. هدف اصلی این `ast.literal_eval()`تابع، ارزیابی رشته‌های حاوی لیترال‌های پایتون است. با این حال، می‌توان از آن برای تبدیل رشته‌ها به اعشاری نیز استفاده کرد، مشروط بر اینکه رشته‌های ارسالی به آن فقط حاوی یک عدد اعشاری باشند. در چنین مواردی، این روش شیء اعشاری متناظر پایتون را برمی‌گرداند. بیایید مثالی از `ast.literal_eval()`عملکرد تابع را ببینیم.

```python
import  ast

input_string  =  "33.3"
float_number  =  ast.literal_eval(input_string)
print(float_number)
print(type(float_number))
```

**خروجی:**

![تبدیل رشته به عدد در پایتون](https://www.novinhost.org/wp-content/uploads/2025/12/4.png)
 همانطور که در مثال بالا نشان داده شده است، `ast.literal_eval()`تابع رشته "33.3" را به عنوان یک عدد اعشاری ارزیابی می‌کند و نوع داده float را ارائه می‌دهد.

## تبدیل رشته به اعشار با Numpy

به عنوان یک توسعه‌دهنده پایتون، ممکن است قبلاً نام NumPy را شنیده باشید . این یک کتابخانه محبوب پایتون برای محاسبات علمی است. این کتابخانه به طور گسترده برای عملیات ریاضی پیشرفته، به خصوص هنگام کار با آرایه‌ها و ماتریس‌ها، استفاده می‌شود. اگر قصد دارید از NumPy برای پروژه بعدی خود استفاده کنید، ضروری است که بدانید چگونه رشته‌ها را با این کتابخانه به اعشار تبدیل کنید.

Numpy شامل یک نوع داده به نام numpy.float64 است که اعداد اعشاری با دقت مضاعف را نشان می‌دهد. همچنین می‌توانید از این نوع داده برای تبدیل مقادیر رشته‌ای به اعداد اعشاری استفاده کنید. در اینجا مثالی از نحوه انجام این کار آورده شده است.

```python
import  numpy  as  np

my_value  =  "64.9512"
float_number  =  np.float64(my_value)
print(float_number)
print(type(float_number))
```

**خروجی:**

![تبدیل رشته به عدد در پایتون](https://www.novinhost.org/wp-content/uploads/2025/12/5.png)
 این قطعه کد رشته "64.9512" را به یک متغیر float64 از نوع NumPy تبدیل می‌کند. NumPy به طور خاص برای مدیریت آرایه‌هایی از مقادیر مفید است، و این آن را به انتخابی عالی برای تبدیل چندین رشته به اعداد اعشاری در زمینه محاسبات عددی تبدیل می‌کند.

مشابه تابع float()، استفاده از numpy.float64 برای تبدیل رشته‌ای که نشان‌دهنده یک عدد اعشاری معتبر نیست، منجر به خطای ValueError خواهد شد.

## استفاده از json.loads()

این یکی دیگر از ساده‌ترین روش‌ها برای تبدیل رشته به اعشار در پایتون است. با این حال، بیایید برای هدف این آموزش، آن را نیز بررسی کنیم. این روش هنگام کار با داده‌های JSON مفید است، که در تعاملات API بسیار رایج است.

این `json.loads()`عملکرد ماژول JSON پایتون هنگام کار با داده‌ها در قالب JSON ضروری است. این عملکرد با فراهم کردن امکان تبدیل رشته‌ای با قالب JSON به یک دیکشنری پایتون، مزیت قابل توجهی را ارائه می‌دهد. همچنین دستکاری آسان داده‌ها را تسهیل می‌کند.

وقتی مقادیر JSON حاوی اعداد اعشاری را ارسال می‌کنید، `json.loads()`به طور خودکار آنها را به نوع داده float تبدیل می‌کند. در اینجا یک مثال آورده شده است.

```python
import  json

json_string  =  '{"temperature": 23.5}'
python_data  =  json.loads(json_string)
temperature  =  python_data['temperature']

print(temperature)
print(type(temperature))
```

**خروجی:**

![تبدیل رشته به عدد در پایتون](https://www.novinhost.org/wp-content/uploads/2025/12/6.png)
 این مثال نحوه‌ی `json.loads()`تجزیه‌ی یک رشته‌ی JSON و تبدیل مقدار عددی "23.5" از نوع رشته به عدد اعشاری (float) را نشان می‌دهد. اگر رشته‌ی JSON ساختار نادرستی داشته باشد یا حاوی مقادیر عددی با قالب‌بندی نامناسب باشد، این تابع خطای json.JSONDecodeError را ایجاد می‌کند.

## با استفاده از یک تابع سفارشی

گاهی اوقات، ممکن است با موقعیت‌هایی مواجه شوید که استفاده از توابع داخلی مانند `float()`برای تبدیل رشته به اعشار مناسب نباشد. در چنین مواردی، می‌توانید با ایجاد یک تابع سفارشی برای دستیابی به همان هدف، انعطاف‌پذیری لازم را به دست آورید. اگرچه این روش کمی کار بیشتری را می‌طلبد، اما امکان مدیریت خطای خاص یا منطق تبدیل را فراهم می‌کند که توابع استاندارد فاقد آن هستند.

بیایید نگاهی به یک قطعه کد نمونه برای پیاده‌سازی منطق سفارشی برای تبدیل رشته به اعشار بیندازیم.

```python
def  string_to_float(string):
    number  =  0.0
    
    # Check if the string represents a negative number
    is_negative  =  string[0] ==  '-'

    # Find the position of the decimal point
    decimal_position  =  string.find('.')

    # If there is no decimal point, treat it as an integer part
    if  decimal_position  ==  -1:
        decimal_position  =  len(string)

    # Convert the integer part
    for  char  in  string[:decimal_position]:
        if  char.isdigit():
            number  =  number  *  10  + (ord(char) -  ord('0'))

    # Convert the fractional part
    fractional_part  =  0.1
    for  char  in  string[decimal_position+1:]:
        if  char.isdigit():
            number  += (ord(char) -  ord('0')) *  fractional_part
            fractional_part  *=  0.1

    # Apply negative sign if needed
    return  -number  if  is_negative  else  number

# Example usage
string_number  =  "123.45"
converted_number  =  string_to_float(string_number)
print(converted_number)
print(type(converted_number))
```

**خروجی:**

![تبدیل رشته به عدد در پایتون](https://www.novinhost.org/wp-content/uploads/2025/12/7.png)
 کد بالا با توضیحات مربوط به بلوک‌های کد خاص، بسیار گویا است. اگر شما یک توسعه‌دهنده پایتون هستید، دانستن نحوه نوشتن یک تابع سفارشی برای تبدیل رشته به اعشار ضروری است. در برخی موارد، شما باید با داده‌های عددی جاسازی‌شده در فایل‌های متنی سر و کار داشته باشید. این فایل‌ها ممکن است دارای یک جداکننده غیراستاندارد برای نقطه اعشار باشند، مانند کاما `(',')`به جای نقطه `('.')`. این وضعیت هنگام کار با سیستم‌های محلی مختلف متفاوت از محلی‌های مبتنی بر انگلیسی بسیار رایج است. در چنین مواردی، می‌توانید یک تابع سفارشی برای تفسیر صحیح این قالب‌ها ایجاد کنید.

[سرور فنلاند](https://www.novinhost.org/finland-vps/)

## نتیجه‌ گیری

تبدیل رشته به اعشار یک کار معمولی است که هر برنامه‌نویس باید انجام دهد. این مقاله شش روش مختلف برای تبدیل یک رشته به اعشار را شرح داد. هر روش از نظر کارایی، امنیت و قابلیت سفارشی‌سازی متفاوت است. در اینجا، ما همچنین در مورد زمان استفاده از هر روش بر اساس معیارهای مختلف بحث کردیم. با تمرین این روش‌ها، می‌توانید آنها را در سناریوهای پیچیده‌تری که در سفر توسعه خود با آنها روبرو خواهید شد، به کار ببرید. کدنویسی خوبی داشته باشید!
