amir_mohammadi

جذر گرفتن تا 4 رقم اعشار و نمایش عدد صفر در قسمت اعشار

amir_mohammadi ۱۳۹۷/۰۶/۰۴ زبان برنامه‌نویسی پایتون

سلام

وقت بخیر

براساس یک صورت مسئله؛ باید برنامه ای بنویسم که تعدادی عدد رو از کاربر دریافت کنه؛ و سپس تا 4 رقم اعشار، جذر اون رو نمایش بده.

از تابع round(number,ndigits که استفاده می کنم و در قسمت ndigits وقتی 4 رو وارد می کنم ؛ در برخی اعداد درست انجام میشه ولی در برخی اعداد مثل 15، تا سه رقم اعشار رو نمایش میده؛

چطور می تونم حتی اگر جذر یک عدد مثلا خود عدد 1 ، قسمت اعشار هم نداره، بازهم در خروجی به این شکل نمایش بدهد: 1.0000

آیا اصلاً با توجه به درخواست سوال، استفاده از تابع round درست هست؟

بطور مثال

ورودی: 

1

2

3

19

خروجی:

1.0000

1.4142

1.7320

4.3588

پاسخ‌ها به این تاپیک
amirhosein_137
amirhosein_137
۱۳۹۷/۱۱/۱۵

سلام.

میتونی اینطوری بنویسی:

print("%.4f" % a)

.4f به معنی چاپ عدد با 4 رقم اعشار هست

a هم عددی هست که حاصل محاسبه داخلش ریخته شده

موفق باشید

علی‌اکبر محمدی
علی‌اکبر محمدی
۱۳۹۷/۰۶/۰۵

سلام دوست عزیز..... راستش من که هرچقدر بالا و پایین کردم نتونستم تو پایتون آخر عدد اعشاری 0 بزارم.... اما یه ایده دارم که شاید بتونید ازش استفاده کنید....

اولا اینکه بله استفاده از round درست هستش. شما بیا بگو:

x = round(sqrt(number), 4)

y = x*(10**4)

شما میتونی از روش بالا استفاده کنی و چهار رقم بعد اعشار رو بیاری پشت اعشار که صفرها هم اضافه میشن و کارهاتو با این اعداد صحیح بکنی و آخر کار یه تقسیم بر 10000 داری..... اگرم که کارهای محاسباتی نمیخوای بکنی میتونی عددت رو به استرینگ تبدیل کنی که البته اینم دردسر داره برای ثبت کردن صفر بعد اعشار..... امیدوارم راه حلم به دردت بخوره و فعلا کارت رو راه بندازه تا دوستان دیگه راه حل دقیق ترش رو بگن....

amir_mohammadi
amir_mohammadi
۱۳۹۷/۰۶/۰۶

سلام

ممنون از پاسختون

من برنامه زیر رو نوشتم؛ پاسخی هم که میگیرم درسته ولی باز هم سیستم ازم قبول نمی کنه؛ در واقع چون که تصحیح پاسخ کاملا آنلاین و کامپیوتری چک میشه، نمیدونم چرا همچنان ازم قبول نمی کنه

این هم سوالش هست:

برنامه ای بنویسید که چند عدد مثبت را از ورودی بخواند و ریشه ی دوم آن را تا ۴ رقم اعشار چاپ کند.

import math
from math import sqrt
list_num=[]

n = int(input())
count = n
while n != 0:
    num = int(input())
    num2 = abs(num)
    num2 = round(sqrt(num2),4)
    list_num.append(float(num2))
    n = n - 1

for i in range (0,len(list_num )):
    print ('%6.4f'%(list_num[i]))

در پاسخ به