"1 1,112" কে 1 এর পরিবর্তে পূর্ণসংখ্যা 1112 এ রূপান্তর করার জন্য কি কোনও ঝরঝরে পদ্ধতি আছে?
আমি একটি পেয়েছি, তবে ঝরঝরে নয়:
"1,112".split(',').join.to_i #=> 1112
উত্তর:
এ কেমন?
"1,112".delete(',').to_i
আপনার কোডটি সঠিকভাবে স্থানীয়ীকৃত হয়েছে তা নিশ্চিত করতে বা ব্যবহারকারীরা "আন্তর্জাতিক" স্বরলিপিতে অভ্যস্ত কিনা তা নিশ্চিত করতে পারেন may উদাহরণস্বরূপ, "1,112" এর অর্থ বিভিন্ন দেশ জুড়ে বিভিন্ন সংখ্যা। জার্মানিতে এর অর্থ হ'ল এক হাজার এবং কিছুর পরিবর্তে সংখ্যাটি কিছুটা বেশি।
সংশ্লিষ্ট উইকিপিডিয়া নিবন্ধটি http://en.wikedia.org/wiki/Decimal_mark এ রয়েছে । এটি যদিও এই সময়ে খারাপ লেখা হয়েছে বলে মনে হয়। একটি চীনা হিসাবে উদাহরণস্বরূপ আমি নিশ্চিত নই যে চীনের হাজার বিভাজক সম্পর্কে এই বিবরণটি এসেছে।
আরও কিছু সুবিধাজনক
"1,1200.00".gsub(/[^0-9]/,'')
এটি পাশাপাশি "1 200 200" কাজ করে
'1,1200.00'.gsub(/[^0-9\.]/,'').to_f
।
"1,1200.00"
করার "1120000"
? আপনি কি কেবল ,
(বা লোকেলের উপর নির্ভর করে .
) এর প্রতিস্থাপন করতে চান না ? এছাড়াও, এটি এটিকে কোনও পূর্ণসংখ্যার বা ভাসমান রূপে রূপান্তর করে না, সীমানা ছাড়াই কেবল একটি স্ট্রিং।
আমি ব্যবহার করে করব String#tr
:
"1,112".tr(',','').to_i # => 1112
যদি কেউ কমা ছাড়াও বেশি কিছু খুঁজে দেওয়ার চেষ্টা করে তবে আমি এর একজন ভক্ত:
"1,200".chars.grep(/\d/).join.to_i
পারফরম্যান্স সম্পর্কে dunno কিন্তু, এটি একটি তুলনায় আরও নমনীয় gsub
, অর্থাত:
"1-200".chars.grep(/\d/).join.to_i
String count = count.replace(",", "");