আমি কীভাবে কোনও স্ট্রিংটিকে লুয়ার পূর্ণসংখ্যায় রূপান্তর করতে পারি?
আমার মতো স্ট্রিং রয়েছে:
a = "10"
আমি এটি 10 এ রূপান্তর করতে চাই, সংখ্যাটি।
আমি কীভাবে কোনও স্ট্রিংটিকে লুয়ার পূর্ণসংখ্যায় রূপান্তর করতে পারি?
আমার মতো স্ট্রিং রয়েছে:
a = "10"
আমি এটি 10 এ রূপান্তর করতে চাই, সংখ্যাটি।
উত্তর:
tonumber
ফাংশনটি ব্যবহার করুন । হিসাবে হিসাবে a = tonumber("10")
।
আপনি গাণিতিক ক্রিয়াকলাপগুলিতে স্ট্রিংটি ব্যবহার করে একটি অন্তর্নিহিত রূপান্তরকে জোর করতে পারেন a= "10" + 0
তবে এটি tonumber
স্পষ্টভাবে ব্যবহার করার মতো পরিষ্কার বা পরিষ্কার নয় ।
tonumber
পরিবর্তে আরও বেশি কারণ ব্যবহার করার কারণ !)
+
সর্বদা সুস্পষ্টভাবে সংযোজন, ..
- মনগড়া।
local a = "10"
print(type(a))
local num = tonumber(a)
print(type(num))
আউটপুট
string
number
লুয়ায় থাকা সমস্ত সংখ্যা ভাসমান ( সম্পাদনা করুন: লুয়া 5.2 বা তার চেয়ে কম)। আপনি যদি সত্যই কোনও "আন্ত" তে রূপান্তর করতে চান (বা কমপক্ষে এই আচরণটির প্রতিলিপি তৈরি করতে পারেন), আপনি এটি করতে পারেন:
local function ToInteger(number)
return math.floor(tonumber(number) or error("Could not cast '" .. tostring(number) .. "' to number.'"))
end
সেক্ষেত্রে আপনি স্পষ্টভাবে স্ট্রিংটিকে (বা সত্যিই তা যাই হোক না কেন) একটি সংখ্যায় রূপান্তর করুন এবং তারপরে জাভাতে (অন্তর্নির্মিত) কাস্টের মতো সংখ্যাটি কেটে ফেলুন।
সম্পাদনা: এটি এখনও লুয়া ৫.৩ এ কাজ করে, এমনকি লুয়া ৫.৩ এর সত্যিকার পূর্ণসংখ্যা রয়েছে বলে মনে হয়েছিল math.floor()
, যেখানে কোনও পূর্ণসংখ্যা যেমন একটি অপারেটর number // 1
এখনও একটি ফ্ল্যাট ফেরত দেবে number
।
বলুন যে স্ট্রিংটি আপনি একটি সংখ্যায় রূপান্তর করতে চান তা ভেরিয়েবলের মধ্যে রয়েছে S
a=tonumber(S)
যদি শর্ত থাকে যে এর মধ্যে সংখ্যা রয়েছে এবং কেবলমাত্র সংখ্যাগুলি S
একটি সংখ্যার প্রত্যাবর্তন করবে, তবে যদি এমন কোনও অক্ষর থাকে যা সংখ্যা না থাকে (ভাসমানের জন্য পিরিয়ড ব্যতীত) তবে এটি শূন্য হয়ে যাবে
ক্লিয়ারার বিকল্পটি আজকের রাতটি ব্যবহার করা ।
5.3.2 হিসাবে, এই ফাংশনটি স্বয়ংক্রিয়ভাবে (স্বাক্ষরিত) পূর্ণসংখ্যা সনাক্ত করবে, ভাসমান (যদি কোনও বিন্দু উপস্থিত থাকে) এবং হেক্সাডেসিমাল (উভয় পূর্ণসংখ্যা এবং ভাসমান, যদি স্ট্রিং "0x" বা "0 এক্স" দিয়ে শুরু হয়)।
নিম্নলিখিত স্নিপেটগুলি সংক্ষিপ্ত তবে সমতুল্য নয়:
a + 0 -- forces the conversion into float, due to how + works.
a | 0 -- (| is the bitwise or) forces the conversion into integer.
-- However, unlike `math.tointeger`, it errors if it fails.
এটি লক্ষ করা উচিত যে math.floor()
সর্বদা গোল হয়ে যায়, এবং তাই নেতিবাচক ভাসমান মানের মানগুলির জন্য একটি বুদ্ধিমান ফলাফল দেয় না।
উদাহরণস্বরূপ, -10.4 একটি পূর্ণসংখ্যার হিসাবে উপস্থাপিত হয় সাধারণত হয় কাটা বা -10 হয়। তবুও গণিতের ফল () এর ফল এক নয়:
math.floor(-10.4) => -11
ধরণের রূপান্তর সহ সংক্ষিপ্তসার জন্য, নিম্নলিখিত সহায়ক ফাংশনটি কাজ করবে:
function tointeger( x )
num = tonumber( x )
return num < 0 and math.ceil( num ) or math.floor( num )
end
তথ্যসূত্র: http://lua.2524044.n2.nabble.com/5-3-Converting-a-floating-Point-number-to-integer-td7664081.html
আপনি এতে 10 "ইন্টি 10" রাখতে একটি অ্যাক্সেসর তৈরি করতে পারেন।
উদাহরণ:
x = tonumber("10")
আপনি যদি x ভেরিয়েবল মুদ্রণ করেন তবে এটি "10" নয় একটি ইনট 10 আউটপুট তৈরি করবে
পাইথন প্রক্রিয়া মত একই
x = int ("10")
ধন্যবাদ।
আমি হাইপারপলিগ্লোট চেক করতে পুনরায় সংশোধন করব, এর একটি দুর্দান্ত তুলনা রয়েছে: http://hyperpolyglot.org/
http://hyperpolyglot.org/more#str-to-num-note
পুনশ্চ. আসলে লুয়া ইনটসে ডাবলসে রূপান্তরিত করে।
সংখ্যা প্রকারটি আসল (ডাবল-নির্ভুলতা ভাসমান-পয়েন্ট) সংখ্যার প্রতিনিধিত্ব করে।
tonumber
দুটি আর্গুমেন্ট নেয়, প্রথমটি স্ট্রিং যা সংখ্যায় রূপান্তরিত হয় এবং দ্বিতীয়টি বেস হয় e
।
রিটার্ন মান tonumber
10 বেস হয়।
যদি কোনও base
সরবরাহ না করা হয় তবে এটি সংখ্যাকে বেস 10 এ রূপান্তর করে।
> a = '101'
> tonumber(a)
101
যদি বেস সরবরাহ করা হয় তবে এটি এটিকে প্রদত্ত বেসে রূপান্তর করে।
> a = '101'
>
> tonumber(a, 2)
5
> tonumber(a, 8)
65
> tonumber(a, 10)
101
> tonumber(a, 16)
257
>
যদি e
অবৈধ অক্ষর থাকে তবে তা ফিরে আসে nil
।
> --[[ Failed because base 2 numbers consist (0 and 1) --]]
> a = '112'
> tonumber(a, 2)
nil
>
> --[[ similar to above one, this failed because --]]
> --[[ base 8 consist (0 - 7) --]]
> --[[ base 10 consist (0 - 9) --]]
> a = 'AB'
> tonumber(a, 8)
nil
> tonumber(a, 10)
nil
> tonumber(a, 16)
171
আমি Lua5.3 বিবেচনা উত্তর
Lua 5.3.1 Copyright (C) 1994-2015 Lua.org, PUC-Rio
> math.floor("10");
10
> tonumber("10");
10
> "10" + 0;
10.0
> "10" | 0;
10
এখানে আপনার করা উচিত
local stringnumber = "10"
local a = tonumber(stringnumber)
print(a + 10)
output:
20