আমি কীভাবে পাইথনে একটি স্ট্রিংকে একটি ডাবলে রূপান্তর করব?


218

আমি কীভাবে অঙ্কগুলি যুক্ত একটি স্ট্রিংকে ডাবলে রূপান্তর করতে পারি তা জানতে চাই।



এটি অজগর দ্বিগুণ নয়। একটি অজগর ডাবল সীমাহীন ক্ষমতা আছে।

উত্তর:


316
>>> x = "2342.34"
>>> float(x)
2342.3400000000001

এই নাও. ফ্লোট ব্যবহার করুন (যা এর মতো আচরণ করে এবং সি, সি ++, বা জাভা ডাবলের মতোই যথার্থতা রয়েছে)।


38
বা আরও সুনির্দিষ্টভাবে বলা যায়, পাইথন ফ্লোটগুলি সি ডাবল।
হাবনবিত

1
বাহ ডাবলের পরিবর্তে ভাসা ব্যবহার করত। এখন আমার কোড
.0000000001

2
ঘটনাক্রমে, এটি প্রকাশকারী স্বরলিপি দিয়েও কাজ করে। যেমন: float('7.5606e-08')প্রত্যাশিত অজগর ভাসা উত্পাদন করে produces
ড্রিভিকো

2
আমার পাইথন (সংস্করণ 2.7.10), যখন আমি দায়িত্ব অর্পণ সঙ্গে >>> x = "2342.34" এবং ধর্মান্তরিত ভাসা >>> float(x) আমি পেতে 2342.34পরিবর্তে 2342.3400000000001@Mongoose দ্বারা রিপোর্ট
Bruce_Warrior

>>> 0.1 + 0.2দ্বিগুণ জন্য ব্যবহার করুন । >>> 0.1 + 0.6ভাসা জন্য।
ব্যবহারকারী 1510539

50

দশমিক অপারেটর আপনি যা সন্ধান করছেন তার সাথে সামঞ্জস্য হতে পারে:

>>> from decimal import Decimal
>>> x = "234243.434"
>>> print Decimal(x)
234243.434

2

আপনার স্ট্রিং নম্বরটিতে 15 টিরও বেশি উল্লেখযোগ্য সংখ্যা রয়েছে কিনা সে সম্পর্কে সচেতন হন float(s) তবে এটি ব্যবহার করা আরও ভাল casesDecimal

এখানে একটি ব্যাখ্যা এবং কিছু কোড নমুনা রয়েছে: https://docs.python.org/3/library/sys.html#sys.float_info

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