উত্তর:
সহজ উপায় হ'ল নেটিভ Number
ফাংশনটি ব্যবহার করা :
var x = Number("1000")
যে আপনার জন্য কাজ করে না, তাহলে আছে parseInt , ইউনারী প্লাস , মেঝে সঙ্গে parseFloat এবং Math.round পদ্ধতি।
parseInt:
var x = parseInt("1000", 10); // you want to use radix 10
// so you get a decimal number even with a leading 0 and an old browser ([IE8, Firefox 20, Chrome 22 and older][1])
যদি আপনার স্ট্রিং ইতিমধ্যে পূর্ণসংখ্যার আকারে থাকে তবে আনরিয়াস প্লাস:
var x = +"1000";
যদি আপনার স্ট্রিংটি ভাসমান হতে পারে এবং আপনি একটি পূর্ণসংখ্যা চান:
var x = Math.floor("1000.01"); //floor automatically converts string to number
বা, যদি আপনি ম্যাথ.ফ্লুর বেশ কয়েকবার ব্যবহার করতে যাচ্ছেন:
var floor = Math.floor;
var x = floor("1000.01");
আপনি যদি এমন টাইপ হন যিনি প্যার্সিইন্ট কল করার সময় র্যাডিক্সটি রাখতে ভুলে যান, আপনি পার্সফ্লোট ব্যবহার করতে পারেন এবং আপনার পছন্দ মতো এটি বৃত্তাকার করতে পারেন। এখানে আমি মেঝে ব্যবহার।
var floor = Math.floor;
var x = floor(parseFloat("1000.01"));
মজার বিষয় হচ্ছে, ম্যাথ.উন্ড (যেমন ম্যাথ.ফ্লুর) সংখ্যার রূপান্তর করতে স্ট্রিং করবে, সুতরাং আপনি যদি নম্বরটি বৃত্তাকার চান (বা স্ট্রিংটিতে আপনার একটি পূর্ণসংখ্যা থাকে) তবে এটি দুর্দান্ত উপায়, সম্ভবত আমার প্রিয়:
var round = Math.round;
var x = round("1000"); //equivalent to round("1000",0)
'4'>>0
এবং '4'>>>0
।
parseInt
এবং parseFloat
আনন্দের সাথে চিঠি গ্রহণ করে। কেবল ধারাবাহিকভাবে Number
ফিরে আসে NaN
।
NaN
প্রতিটি মানের জন্য ফলাফল হওয়া উচিত যা সঠিকভাবে পূর্ণসংখ্যা নয়। এই কাজের অতএব কেউ Number('2.2')
coerces করতে 2
এবং Number('')
নিগৃহীত 0
ParseInt ফাংশনটি ব্যবহার করে দেখুন:
var number = parseInt("10");
কিন্তু একটি সমস্যা আছে. আপনি যদি "010" কে পার্সইন্ট ফাংশনটি ব্যবহার করে রূপান্তর করার চেষ্টা করেন, এটি অষ্টাল সংখ্যা হিসাবে সনাক্ত করে এবং ৮ নম্বর ফিরে আসবে, সুতরাং আপনাকে একটি রেডিক্স নির্দিষ্ট করতে হবে (২ থেকে ৩ from পর্যন্ত)। এই ক্ষেত্রে বেস 10।
parseInt(string, radix)
উদাহরণ:
var result = parseInt("010", 10) == 10; // Returns true
var result = parseInt("010") == 10; // Returns false
নোট করুন যে parseInt
কোনও বৈধ বিশ্লেষণের পরে খারাপ ডেটা উপেক্ষা করে।
এই নির্দেশিকাটি 51 হিসাবে পার্স করা হবে:
var result = parseInt('51e3daf6-b521-446a-9f5b-a1bb4d8bac36', 10) == 51; // Returns true
parseInt('0asdf', 10)
উত্পাদন করে 0
।
জাভাস্ক্রিপ্টে একটি স্ট্রিংকে একটি সংখ্যায় রূপান্তর করার দুটি প্রধান উপায় রয়েছে। এর একটি উপায় এটি পার্স করা এবং অন্য উপায়টি এর ধরণটিকে একটি সংখ্যায় পরিবর্তন করা। অন্যান্য উত্তরের সমস্ত কৌশল (যেমন আনরি প্লাস) স্ট্রিংয়ের ধরণকে সংখ্যায় স্পষ্টভাবে জড়িত করে। আপনি একই জিনিস সংখ্যা ফাংশন দিয়ে স্পষ্টভাবে করতে পারেন।
পদান্বয়
var parsed = parseInt("97", 10);
সংখ্যায় স্ট্রিং পার্সিংয়ের জন্য ব্যবহৃত দুটি ফাংশন পার্সিয়ান্ট এবং পার্সফ্লোট। পার্সিং চুপচাপ থামবে যদি এটি এমন কোনও চরিত্রকে আঘাত করে যা এটি স্বীকৃতি দেয় না, যা "92px" এর মতো স্ট্রিং পার্সিংয়ের জন্য কার্যকর হতে পারে তবে এটি কিছুটা বিপজ্জনকও, কারণ এটি আপনাকে খারাপ ইনপুটটিতে কোনও ধরণের ত্রুটি দেয় না, পরিবর্তে আপনি স্ট্রিংটি একটি সংখ্যার সাথে শুরু না হলে NAN ফিরিয়ে আনব। স্ট্রিংয়ের শুরুতে হোয়াইটস্পেস উপেক্ষা করা হয়। আপনি যা চান তার থেকে আলাদা কিছু করা এবং কোনও কিছুতে ভুল হয়েছে এমন ইঙ্গিত না দেওয়া এর উদাহরণ এখানে দেওয়া হয়েছে:
var widgetsSold = parseInt("97,800", 10); // widgetsSold is now 97
সর্বদা দ্বিতীয় যুক্তি হিসাবে রেডিক্স নির্দিষ্ট করা ভাল অনুশীলন। পুরানো ব্রাউজারগুলিতে, যদি স্ট্রিংটি 0 দিয়ে শুরু হয় তবে এটি যদি অডটাল হিসাবে ব্যাখ্যা করা হয় তবে যদি রেডিক্সটি নির্দিষ্ট না করা হত যা প্রচুর মানুষকে অবাক করে দিয়েছিল। হেক্সাডেসিমালের জন্য আচরণটি 0x দিয়ে স্ট্রিং শুরু করে ট্রিগার করা হয় যদি কোনও রেডিক্স নির্দিষ্ট না করা হয়, যেমন 0xff
। মানকটি বাস্তু স্ক্রিপ্ট 5 দিয়ে পরিবর্তিত হয়েছে, সুতরাং আধুনিক ব্রাউজারগুলি অষ্টালকে আর ট্রিগার করতে পারে না যখন কোনও রেডিক্স নির্দিষ্ট না করা থাকে leading পার্সিয়ান্ট বেস ৩ 36 পর্যন্ত রেডিক্সগুলি বোঝে, সেক্ষেত্রে উপরের এবং নিম্নের উভয় অক্ষরকে সমতুল্য হিসাবে বিবেচনা করা হয়।
একটি সংখ্যায় একটি স্ট্রিংয়ের ধরণ পরিবর্তন করা
উপরে উল্লিখিত অন্যান্য সমস্ত কৌশলগুলির মধ্যে যেগুলি পার্সইন্ট ব্যবহার করে না, স্ট্রিংকে সংখ্যায় জোর করে জড়িত। আমি স্পষ্টভাবে এটি করতে পছন্দ করি,
var cast = Number("97");
পার্স পদ্ধতিতে এটির আলাদা আচরণ রয়েছে (যদিও এটি এখনও সাদা স্থানকে উপেক্ষা করে)। এটি আরও কঠোর: যদি এটি স্ট্রিংটি ফিরে আসার চেয়ে পুরোটা বুঝতে না পারে NaN
, তবে আপনি স্ট্রিংয়ের মতো এটি ব্যবহার করতে পারবেন না 97px
। যেহেতু আপনি একটি নম্বর মোড়কের বস্তুর পরিবর্তে আদিম সংখ্যা চান, তাই নিশ্চিত করুন যে আপনি new
সংখ্যা ফাংশনের সামনে রাখছেন না।
স্পষ্টতই, একটি সংখ্যায় রূপান্তরকরণ আপনাকে এমন একটি মান দেয় যা পূর্ণসংখ্যার চেয়ে ভাসমান হতে পারে, সুতরাং আপনি যদি পূর্ণসংখ্যার চান তবে আপনার এটি পরিবর্তন করতে হবে। এটি করার কয়েকটি উপায় রয়েছে:
var rounded = Math.floor(Number("97.654")); // other options are Math.ceil, Math.round
var fixed = Number("97.654").toFixed(0); // rounded rather than truncated
var bitwised = Number("97.654")|0; // do not use for large numbers
যে কোনও বিটওয়াইস অপারেটর (এখানে আমি কিছুটা উল্টাপাল্টা কাজ করেছি বা, তবে আপনি আগের উত্তর বা বিটশিফ্টের মতো ডাবল নেগ্রেশনও করতে পারেন) মানটি 32 বিট পূর্ণসংখ্যায় রূপান্তরিত করবে এবং তাদের বেশিরভাগই স্বাক্ষরিত পূর্ণসংখ্যায় রূপান্তর করবে। নোট করুন যে এটি আপনার বড় সংখ্যার জন্য চাইবে না । যদি পূর্ণসংখ্যাকে 32 বিটগুলিতে প্রতিনিধিত্ব করা না যায় তবে এটি মোড়ানো হবে।
~~"3000000000.654" === -1294967296
// This is the same as
Number("3000000000.654")|0
"3000000000.654" >>> 0 === 3000000000 // unsigned right shift gives you an extra bit
"300000000000.654" >>> 0 === 3647256576 // but still fails with larger numbers
বৃহত সংখ্যার সাথে সঠিকভাবে কাজ করতে, আপনার বৃত্তাকার পদ্ধতিগুলি ব্যবহার করা উচিত
Math.floor("3000000000.654") === 3000000000
// This is the same as
Math.floor(Number("3000000000.654"))
বিয়ার মন যে এই পদ্ধতি সব বুঝতে সূচকীয় স্বরলিপি, তাই 2e2
হয় 200
NaN বদলে। এছাড়াও, সংখ্যা "ইনফিনিটি" বোঝে, যখন পার্স পদ্ধতিগুলি না করে।
প্রথা
এই পদ্ধতিগুলির যে কোনওটি আপনি যা চান ঠিক তেমন করে তা অসম্ভব। উদাহরণস্বরূপ, সাধারণত পার্সিং ব্যর্থ হলে আমি একটি ত্রুটি নিক্ষেপ করতে চাই এবং আমার জন্য ইনফিনিটি, এক্সপেনসিয়েন্টাল বা নেতৃস্থানীয় হোয়াইটস্পেসের জন্য সমর্থন প্রয়োজন না। আপনার ব্যবহারের উপর নির্ভর করে, কখনও কখনও এটি একটি কাস্টম রূপান্তর ফাংশন লিখতে বোধ করে।
সর্বদা পরীক্ষা করুন যে সংখ্যার আউটপুট বা কোনও পার্স পদ্ধতিতে আপনার প্রত্যাশিত সংখ্যার সাজানো। আপনি isNaN
নম্বরটি নিশ্চিত হন না এটি নিশ্চিত করতে আপনি অবশ্যই অবশ্যই ব্যবহার করতে চাইবেন (সাধারণত একমাত্র উপায় যা আপনি জানতে পারেন যে পার্স ব্যর্থ হয়েছে)।
97,8,00
এবং অনুরূপ কিনা তা নির্ভর করে । একটি সহজ কৌশলটি এমনটি করা .replace(/[^0-9]/g, "")
যা আপনার স্ট্রিং থেকে সমস্ত অ-অঙ্ক সরিয়ে ফেলবে এবং তারপরে রূপান্তরটি করবে। এটি অবশ্যই সমস্ত ধরণের পাগল স্ট্রিংগুলিকে উপেক্ষা করবে যা আপনার সম্ভবত কেবল বিশ্লেষণ করার পরিবর্তে ত্রুটি করা উচিত ...
.replace(/[^0-9.]/g, "")
, অন্যথায় "1.05" "105" হয়ে যাবে।
var fixed = Number("97.654").toFixed(0); // rounded rather than truncated
, আমরা একটি (পূর্ণসংখ্যার) পরিবর্তে একটি ( পদ্ধতির string
কারণে .toFixed
) পাচ্ছি number
। আমরা যদি গোলাকার পূর্ণসংখ্যাটি চাই তবে সম্ভবত এটি ব্যবহার করা আরও ভালMath.round("97.654");
পার্সেন্ট () এবং + পৃথক
parseInt("10.3456") // returns 10
+"10.3456" // returns 10.3456
var x = "1000"*1;
এখানে গতির সামান্য তুলনা করা হচ্ছে (কেবলমাত্র ম্যাক ওস) ... :)
ক্রোম 'প্লাস' এবং 'মুল' দ্রুত (> 700,000,00 ওপেন / সেকেন্ড) এর জন্য, 'ম্যাথ.ফ্লুর' সবচেয়ে ধীর। ফায়ারফক্সের জন্য 'প্লাস' সবচেয়ে ধীর (!) 'মুল' দ্রুত (> 900,000,000 অপ / সেকেন্ড)। সাফারিতে 'পার্সিয়ান্ট' দ্রুততম, 'সংখ্যা' সবচেয়ে ধীরে (তবে রেজুলেটগুলি বেশ সমান,> 13,000,000 <31,000,000)। সুতরাং কাস্ট স্ট্রিংয়ের জন্য সাফারি অন্য ব্রাউজারগুলির চেয়ে 10x এর চেয়ে ধীর। সুতরাং বিজয়ী হ'ল ' মুল ' :)
আপনি এই লিঙ্কটি আপনার ব্রাউজারে এটি চালাতে পারেন https://jsperf.com/js-cast-str-to-number/1
হালনাগাদ
আমি এটিও পরীক্ষা করে দেখি var x = ~~"1000";
- ক্রোম এবং সাফারি var x = "1000"*1
(<1%) এর চেয়ে কিছুটা ধীরে ধীরে , ফায়ারফক্সে কিছুটা দ্রুত (<1%) দ্রুত। আমি উপরে ছবি এবং পরীক্ষা আপডেট
যদিও পুরানো প্রশ্ন, তবে এটি কারও পক্ষে সহায়ক হতে পারে।
আমি স্ট্রিংটি ইনটি সংখ্যায় রূপান্তর করার এই পদ্ধতিটি ব্যবহার করি
var str = "25"; // string
var number = str*1; // number
সুতরাং, 1 দিয়ে গুণ করলে, মান পরিবর্তন হয় না, তবে জেএস স্বয়ংক্রিয়ভাবে একটি সংখ্যা ফেরত দেয়।
তবে যেমনটি নীচে প্রদর্শিত হয়েছে, এটি ব্যবহার করা উচিত যদি আপনি নিশ্চিত হন যে str
সংখ্যাটি (বা একটি সংখ্যা হিসাবে উপস্থাপিত হতে পারে), অন্যথায় এটি NaN ফিরিয়ে দেবে - একটি সংখ্যা নয়।
আপনি যেমন ব্যবহার করতে সাধারণ ফাংশন তৈরি করতে পারেন
function toNumber(str) {
return str*1;
}
পার্সিয়ান্ট চেষ্টা করুন।
var number = parseInt("10", 10); //number will have value of 10.
আমি এখানে ভুল উত্তর পোস্ট করেছি, দুঃখিত। স্থির করেছি।
এটি একটি পুরানো প্রশ্ন, তবে আমি এই কৌশলটি পছন্দ করি:
~~"2.123"; //2
~~"5"; //5
ডাবল বিটওয়াইজ নেতিবাচক দশমিক পয়েন্টের পরে যেকোন কিছু বাদ দেয় এবং এটিকে একটি সংখ্যা বিন্যাসে রূপান্তর করে। আমাকে বলা হয়েছে যে এটি ফাংশনগুলি এবং কল করার চেয়ে কিছুটা দ্রুত, তবে আমি পুরোপুরি নিশ্চিত নই।
সম্পাদনা: অন্য পদ্ধতিটি আমি এখানে কেবল দেখেছি (জাভাস্ক্রিপ্ট >>> অপারেটর সম্পর্কে একটি প্রশ্ন যা শূন্য-পূরণের ডান শিফট) যা দেখায় যে এই অপারেটরের সাথে 0 দ্বারা একটি সংখ্যা স্থানান্তর করাকে একটি ইউন্ট 32 তে রূপান্তর করে যা আপনি যদি ভাল তবে ভাল এছাড়াও এটি স্বাক্ষরবিহীন চাই । আবার এটি স্বাক্ষরবিহীন পূর্ণসংখ্যায় রূপান্তরিত হয় , যা আপনি স্বাক্ষরযুক্ত নম্বর ব্যবহার করলে অদ্ভুত আচরণের দিকে পরিচালিত করতে পারে।
"-2.123" >>> 0; // 4294967294
"2.123" >>> 0; // 2
"-5" >>> 0; // 4294967291
"5" >>> 0; // 5
আপনি যদি বৈজ্ঞানিক স্বরলিপিতে একটি ফ্লোটকে রূপান্তর করতে পার্সিয়ান্ট ব্যবহার করেন তবে সাবধান! উদাহরণ স্বরূপ:
parseInt("5.6e-14")
ফলাফল হবে
5
পরিবর্তে
0
parseInt
ফলে ভাসা চলবে না। parseFloat
এই ক্ষেত্রে সঠিকভাবে কাজ করে।
একটি স্ট্রিংকে পূর্ণসংখ্যার সাথে রূপান্তর করতে, আমি পার্সফ্লোট এবং নট পার্সেইন্ট ব্যবহার করার পরামর্শ দিচ্ছি । কারণটা এখানে:
পার্সফ্লোট ব্যবহার:
parseFloat('2.34cms') //Output: 2.34
parseFloat('12.5') //Output: 12.5
parseFloat('012.3') //Output: 12.3
পার্সেন্ট ব্যবহার:
parseInt('2.34cms') //Output: 2
parseInt('12.5') //Output: 12
parseInt('012.3') //Output: 12
সুতরাং আপনি যদি লক্ষ্য করেছেন যে পার্সইন্টটি দশমিকের পরে মানগুলি বাদ দেয়, অন্যদিকে পার্সফ্লোট আপনাকে ভাসমান পয়েন্ট সংখ্যাগুলির সাথে কাজ করতে দেয় এবং আপনি যদি দশমিকের পরে মান ধরে রাখতে চান তবে আরও উপযুক্ত। পার্সইন্টটি ব্যবহার করুন যদি এবং আপনি যদি নিশ্চিত হন যে আপনি পূর্ণসংখ্যার মান চান want
পার্শ্ব নোট হিসাবেও: মটুলগুলি টু ইন্ট () ব্যবহার করে যা কোনও স্থানীয় স্ট্রিং (বা ভাসা (বা পূর্ণসংখ্যা)) এ ব্যবহৃত হয়।
"2".toInt() // 2
"2px".toInt() // 2
2.toInt() // 2
SyntaxError
, আপনার একটি ডাবল ডট ব্যবহার করা উচিত, উদাহরণস্বরূপ: 2..toInt();
প্রথম বিন্দুটি Number
আক্ষরিকের উপস্থাপনাটি শেষ করবে এবং দ্বিতীয় বিন্দুটি সম্পত্তি অ্যাক্সেসর।
আমরা ব্যবহারের +(stringOfNumber)
পরিবর্তে ব্যবহার করতে পারিparseInt(stringOfNumber)
উদা: +("21")
আয় 21 মত int parseInt("21")
।
আমরা ফ্লোটকে পার্সিংয়ের জন্য এই আনরিয়ার অপারেটরটিও ব্যবহার করতে পারি ...
+
?
parseInt
যেমন স্পষ্ট হয় না। একটি সাধারণ বাস্তবায়ন const myNumber = +myNumberAsAString
যা প্রথম নজরে কোনও স্ট্যান্ডার্ড +=
বা =+
অপারেটরের মতো লাগে । এছাড়াও যদি ভুলভাবে ব্যবহার করা হয় তবে এটি সংক্ষিপ্ততর ত্রুটি হতে পারে। এই সমাধানটি 0 এর উপর ভিত্তি করে যে কোনও সংখ্যা সরবরাহ করা হয় না তখন 0 বাম দিক হিসাবে ধরে নেওয়া হয়।
একটি স্ট্রিংটিকে একটি সংখ্যার মানে রূপান্তর করার জন্য জাভাস্ক্রিপ্টে অনেকগুলি উপায় রয়েছে ... সমস্ত সাধারণ এবং সহজ, আপনার জন্য কোনটি কাজ করে তা চয়ন করুন:
var num = Number("999.5"); //999.5
var num = parseInt("999.5", 10); //999
var num = parseFloat("999.5"); //999.5
var num = +"999.5"; //999.5
এছাড়াও কোনও ম্যাথ ক্রিয়াকলাপ তাদেরকে সংখ্যায় রূপান্তর করে, উদাহরণস্বরূপ ...
var num = "999.5" / 1; //999.5
var num = "999.5" * 1; //999.5
var num = "999.5" - 1 + 1; //999.5
var num = "999.5" - 0; //999.5
var num = Math.floor("999.5"); //999
var num = ~~"999.5"; //999
আমার পছন্দের উপায়টি +
সাইন ব্যবহার করা হচ্ছে যা জাভাস্ক্রিপ্টে একটি স্ট্রিংকে সংখ্যায় রূপান্তর করার মার্জিত উপায়।
str - 0
রূপান্তর string
করার চেষ্টা করুন number
।
> str = '0'
> str - 0
0
> str = '123'
> str - 0
123
> str = '-12'
> str - 0
-12
> str = 'asdf'
> str - 0
NaN
> str = '12.34'
> str - 0
12.34
স্ট্রিংকে ইনটে রূপান্তর করার বিভিন্ন উপায়ের পারফরম্যান্সের তুলনা করতে এখানে দুটি লিঙ্ক রয়েছে are
গুগল আমাকে এই উত্তরটি ফলাফল হিসাবে দিয়েছে, তাই ...
আমার আসলে সি এবং জাভাস্ক্রিপ্টের মধ্যে একটি বাঁধার জন্য একটি স্ট্রিংটি একটি পূর্ণসংখ্যা হিসাবে "সংরক্ষণ" করা দরকার ছিল, তাই আমি স্ট্রিংটিকে একটি পূর্ণসংখ্যার মানতে রূপান্তর করি:
/*
Examples:
int2str( str2int("test") ) == "test" // true
int2str( str2int("t€st") ) // "t¬st", because "€".charCodeAt(0) is 8364, will be AND'ed with 0xff
Limitations:
max 4 chars, so it fits into an integer
*/
function str2int(the_str) {
var ret = 0;
var len = the_str.length;
if (len >= 1) ret += (the_str.charCodeAt(0) & 0xff) << 0;
if (len >= 2) ret += (the_str.charCodeAt(1) & 0xff) << 8;
if (len >= 3) ret += (the_str.charCodeAt(2) & 0xff) << 16;
if (len >= 4) ret += (the_str.charCodeAt(3) & 0xff) << 24;
return ret;
}
function int2str(the_int) {
var tmp = [
(the_int & 0x000000ff) >> 0,
(the_int & 0x0000ff00) >> 8,
(the_int & 0x00ff0000) >> 16,
(the_int & 0xff000000) >> 24
];
var ret = "";
for (var i=0; i<4; i++) {
if (tmp[i] == 0)
break;
ret += String.fromCharCode(tmp[i]);
}
return ret;
}
int2str
বাইট 0 হয় তবে আপনার ফাংশনটি বন্ধ হয়ে যায় যা মানটির মধ্যে একটি বৈধ উপাদান হতে পারে, তাই if
... ... break
সরানো উচিত যাতে আপনি একটি সম্পূর্ণ 4-বাইট মান ফেরত পাবেন।
আমার মতে, কোনও উত্তর কোনও প্রান্তের কেসকে কভার করে না কারণ একটি ফ্লোটকে পার্সিং করার ফলে একটি ত্রুটি হতে পারে।
function parseInteger(value) {
if(value === '') return NaN;
const number = Number(value);
return Number.isInteger(number) ? number : NaN;
}
parseInteger("4") // 4
parseInteger("5aaa") // NaN
parseInteger("4.33333") // NaN
parseInteger("aaa"); // NaN
parseInteger
, না parseNumber
। আমি অনুমান করি যে প্রতিটি সমাধানই কার্যকর নয় কারণ জেএস পূর্ণসংখ্যা সমর্থন করে না এবং পৃথক ধরণের হিসাবে ভাসমান। আমরা ফিরে আসতে পারে null
পরিবর্তে NaN
যদি না একটি সংখ্যা বিভ্রান্তিকর হয়।
এখানে সবচেয়ে সহজ সমাধান
let myNumber = "123" | 0;
আরও সহজ সমাধান
let myNumber = +"123";
উপরের সবগুলোই সঠিক. অনুগ্রহ করে নিশ্চিত হয়ে নিন যে এটি আগে টাইপট x === 'সংখ্যা' "করে স্ট্রিংয়ের একটি নম্বর, এটি এনএএন ফিরে আসবে
var num = "fsdfsdf242342";
typeof num => 'string';
var num1 = "12423";
typeof num1 => 'number';
+num1 = > 12423`
var num1 = "12423"; typeof num1;
রিটার্ন দেয় string
।
আমি স্ট্রিংয়ের আগে কেবল একটি প্লাস (+) যুক্ত করেছি এবং এটি ছিল সমাধান!
+"052254" //52254
আশা করি এটা সাহায্য করবে ;)
দশটির নিজ নিজ ক্ষমতার সাথে অঙ্কের গুণনের যোগফল:
অর্থ: 123 = 100 + 20 + 3 = 1 * 100 + 2 + 10 + 3 * 1 = 1 * (10 ^ 2) + 2 * (10 ^ 1) + 3 * (10 ^ 0)
function atoi(array) {
// use exp as (length - i), other option would be to reverse the array.
// multiply a[i] * 10^(exp) and sum
let sum = 0;
for (let i = 0; i < array.length; i++) {
let exp = array.length-(i+1);
let value = array[i] * Math.pow(10,exp);
sum+=value;
}
return sum;
}
function doSth(){
var a = document.getElementById('input').value;
document.getElementById('number').innerHTML = toNumber(a) + 1;
}
function toNumber(str){
return +str;
}
<input id="input" type="text">
<input onclick="doSth()" type="submit">
<span id="number"></span>
আপনি একটি বৈধ পূর্ণসংখ্যার পেতে নিরাপদ উপায়:
let integer = (parseInt(value, 10) || 0);
উদাহরণ:
// Example 1 - Invalid value:
let value = null;
let integer = (parseInt(value, 10) || 0);
// => integer = 0
// Example 2 - Valid value:
let value = "1230.42";
let integer = (parseInt(value, 10) || 0);
// => integer = 1230
// Example 3 - Invalid value:
let value = () => { return 412 };
let integer = (parseInt(value, 10) || 0);
// => integer = 0
function parseIntSmarter(str) {
// ParseInt is bad because it returns 22 for "22thisendsintext"
// Number() is returns NaN if it ends in non-numbers, but it returns 0 for empty or whitespace strings.
return isNaN(Number(str)) ? NaN : parseInt(str, 10);
}
আপনি প্লাস ব্যবহার করতে পারেন, উদাহরণস্বরূপ =>
var personAge = '24'; var personAge1 = (+ ব্যক্তি এজ)
তারপরে আপনি টাইপফোন ব্যক্তি বয়স দেখতে পারেন number