পাইথনে দুটি দশমিক স্থান সহ একটি ভাসা প্রদর্শন করুন


136

আমার ভাসা যুক্তি (সাধারণত একটি পূর্ণসংখ্যার সাথে পূর্ণসংখ্যার দশমিক বা দশমিক) গ্রহণ করার একটি ফাংশন রয়েছে এবং আমার দুটি দশমিক স্থানে (5 -> 5.00, 5.5 -> 5.50 ইত্যাদি) স্ট্রিংয়ের মানগুলি আউটপুট করতে হবে। পাইথনে আমি কীভাবে এটি করতে পারি?

উত্তর:


148

আপনি তার জন্য স্ট্রিং ফর্ম্যাটিং অপারেটরটি ব্যবহার করতে পারেন:

>>> '%.2f' % 1.234
'1.23'
>>> '%.2f' % 5.0
'5.00'

অপারেটরের ফলাফলটি একটি স্ট্রিং, যাতে আপনি এটি একটি ভেরিয়েবল, মুদ্রণ ইত্যাদিতে সঞ্চয় করতে পারেন


272

যেহেতু এই পোস্টটি কিছু সময়ের জন্য এখানে থাকতে পারে তাই অজগর 3 বাক্য গঠনটিও নির্দেশ করে:

"{:.2f}".format(5)

9
কেবলমাত্র সম্পূর্ণতার জন্য, যদি d=3"{:.{}f}".format(5, d)
দশমিকগুলি

73

এফ স্ট্রিং বিন্যাস:

পাইথন ৩.6-এ এটি নতুন ছিল - স্ট্রিংটি যথারীতি উদ্ধৃতি চিহ্নগুলিতে স্থাপন করা হয়, f'...আপনি r'...কাঁচা স্ট্রিংয়ের জন্য একইভাবে চাপিয়ে দেন । তারপরে আপনি নিজের স্ট্রিং, ভেরিয়েবল, সংখ্যা, ধনুর্বন্ধনীগুলির মধ্যে যা কিছু স্থাপন করতে চান তা স্থাপন করুন f'some string text with a {variable} or {number} within that text'- এবং পাইথন পূর্ববর্তী স্ট্রিং বিন্যাস পদ্ধতি হিসাবে মূল্যায়ন করে, এই পদ্ধতিটি আরও বেশি পঠনযোগ্য except

>>> a = 3.141592
>>> print(f'My number is {a:.2f} - look at the nice rounding!')

My number is 3.14 - look at the nice rounding!

আপনি এই উদাহরণে দেখতে পাচ্ছেন আমরা দশমিক জায়গাগুলির সাথে একই স্ট্রিংয়ের পূর্ববর্তী স্ট্রিং বিন্যাস পদ্ধতিতে ফর্ম্যাট করি format

এনবি aএকটি সংখ্যা, পরিবর্তনশীল, এমনকি একটি এক্সপ্রেশন যেমনও হতে পারে f'{3*my_func(3.14):02f}'

এগিয়ে যাওয়া, নতুন কোড সহ আমি সাধারণ% s বা str.format () পদ্ধতিগুলির চেয়ে এফ-স্ট্রিং পছন্দ করি কারণ এফ-স্ট্রিংগুলি আরও বেশি পঠনযোগ্য হতে পারে এবং প্রায়শই দ্রুত হয়


6

স্ট্রিং বিন্যাস:

print "%.2f" % 5

1
তবে এগুলি সমস্ত স্ট্রিং, সুতরাং আমি তাদের উপর কোনও গাণিতিক ক্রিয়াকলাপ করতে সক্ষম
হইনি

@itsaruns খালি দশমিক স্থান যুক্ত করা কোনও পার্থক্য করে না যদি আপনার এগুলিতে গাণিতিক ক্রিয়াকলাপ চালানোর প্রয়োজন হয়। আপনি সন্ধান করতে পারেন math.floor, math.ceilবাround
স্টেইন শ্যাট

5

পাইথন স্ট্রিং ফর্ম্যাটিং ব্যবহার করে।

>>> "%0.2f" % 3
'3.00'

4

স্ট্রিং বিন্যাস:

a = 6.789809823
print('%.2f' %a)

অথবা

print ("{0:.2f}".format(a)) 

রাউন্ড ফাংশন ব্যবহার করা যেতে পারে:

print(round(a, 2))

বৃত্তাকার () সম্পর্কে ভাল বিষয়টি হ'ল, আমরা এই ফলাফলটিকে অন্য পরিবর্তনশীলতে সঞ্চয় করতে পারি এবং তারপরে এটি অন্য উদ্দেশ্যে ব্যবহার করতে পারি।

b = round(a, 2)
print(b)

5
জন্য Downvote round। এটি কেবল প্রদর্শনের উদ্দেশ্যে ব্যবহার করা উচিত নয় ।
উইম

@ আমি আপনার মন্তব্যকে সম্মান করি তবে এই উত্তরগুলি কেবল কারওর চাহিদা মেটানোর জন্য।
debaonline4u

2
@ debaonline4u উইম ঠিক আছে। round(5.0001, 2)-> 5.0, না'5.00'
ওজান্দ্রিয়া


3

আপনি যদি কেবল সংখ্যাটি ভিন্নভাবে প্রদর্শন না করে নিজেই পরিবর্তন করতে চান তবে বিন্যাসটি ব্যবহার করুন ()

এটি 2 দশমিক স্থানে ফর্ম্যাট করুন:

format(value, '.2f')

উদাহরণ:

>>> format(5.00000, '.2f')
'5.00'

0

আমি জানি এটি একটি পুরানো প্রশ্ন, তবে আমি নিজেই উত্তরটি খুঁজে পেতে হিমশিম খাচ্ছিলাম। আমি যা নিয়ে এসেছি তা এখানে:

পাইথন 3:

>>> num_dict = {'num': 0.123, 'num2': 0.127}
>>> "{0[num]:.2f}_{0[num2]:.2f}".format(num_dict) 
0.12_0.13

3
হাই, স্ট্যাক ওভারফ্লোতে আপনাকে স্বাগতম ইতিমধ্যে অনেক প্রশ্নের উত্তর রয়েছে এমন প্রশ্নের উত্তর দেওয়ার সময়, দয়া করে আপনি যে প্রতিক্রিয়া সরবরাহ করছেন তা কেন যথেষ্ট এবং মূল পোস্টার দ্বারা ইতিমধ্যে যা পরীক্ষা করা হয়েছে তা প্রতিধ্বনিত করছে না সে সম্পর্কে কিছু অতিরিক্ত অন্তর্দৃষ্টি যুক্ত করার বিষয়টি নিশ্চিত হন। এটি "কোড-কেবল" উত্তরের ক্ষেত্রে বিশেষত গুরুত্বপূর্ণ যা আপনি সরবরাহ করেছেন important
chb

-1

পাইথন 3 সিনট্যাক্স ব্যবহার:

print('%.2f' % number)

1
%-ফর্ম্যাটিংটি পাইথন 3-তে নতুন নয়, এবং ইতিমধ্যে 6 বছর আগে থেকে এই উত্তরটি কভার করা হয়েছে
wjandrea

-1

আপনি যদি ইনপুট কল করার সময় সীমিত দুটি দশমিক স্থানে ভাসমান পয়েন্ট মান পেতে চান,

এটি দেখুন ~

a = eval(format(float(input()), '.2f'))   # if u feed 3.1415 for 'a'.
print(a)                                  # output 3.14 will be printed.

কেন evalএকটি স্ট্রিং যখন আপনি শুধু পারা round? যাইহোক এটি এমনকি সঠিকভাবে কাজ করে না যেহেতু আপনি খাওয়ান 5, আপনি ওপি চাইলে 5.0পরিবর্তে পেতে 5.00পারেন।
wjandrea

এই জন্য কাজ করে না nanএবং inf
wjandrea
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.