একটি জাভাস্ক্রিপ্ট স্ট্রিং ভেরিয়েবলকে দশমিক / অর্থ হিসাবে রূপান্তর করুন


114

আমরা কীভাবে একটি জাভাস্ক্রিপ্ট স্ট্রিং ভেরিয়েবলকে দশমিক রূপান্তর করতে পারি?

এখানে কোন ফাংশন রয়েছে:

parseInt(document.getElementById(amtid4).innerHTML)

উত্তর:


240

হ্যাঁ - parseFloat

parseFloat(document.getElementById(amtid4).innerHTML);

সংখ্যার বিন্যাসের জন্য , ব্যবহার করুন toFixed:

var num = parseFloat(document.getElementById(amtid4).innerHTML).toFixed(2);

num এখন দুটি দশমিক স্থান সহ ফর্ম্যাট সংখ্যার একটি স্ট্রিং।


1
আমরা কি 2 দশমিক পয়েন্ট যেমন 120.50 এর সাথে পরিবর্তনশীল করতে পারি? এখনই আমি 120.5 পাচ্ছি getting
ভারাদা

16
@ ফিলিপওয়াইটহাউসটি উদ্ধৃত করার জন্য "দয়া করে, ভবিষ্যতে এটি পড়ার জন্য কারও কাছে মুদ্রা সংরক্ষণ করতে ভাসা ব্যবহার করবেন না You আউটপুট। সূত্র: স্ট্যাকওভারফ্লো.com
এসএসএইচ

@ এসএসএইচটি যতটা আমি সচেতন জাভাস্ক্রিপ্টটিতে পূর্ণসংখ্যার প্রকার নেই। এর কেবলমাত্র একটি সংখ্যা প্রকার রয়েছে যা সমস্ত অভ্যন্তরীণভাবে 64 বিট ভাসমান পয়েন্ট সংখ্যা হিসাবে সঞ্চিত থাকে। আপনার পয়েন্টটি অন্যান্য ভাষার ক্ষেত্রে যেমন সি #, সি ++ এর মতো পূর্ণসংখ্যার প্রকারের জন্য বৈধ, তবে জাভাস্ক্রিপ্টের জন্য আসলে তা নয়।
সাইমন ব্রাংউইন

1
@ সিমনব্র্যাংউইন তাঁর বক্তব্যটি এখনও বৈধ, তবে শব্দার্থবিজ্ঞানগুলি বিভ্রান্তিকর হতে পারে। তার সত্যিকারের অর্থ হল "জাভাস্ক্রিপ্টে কেবলমাত্র পুরো মুদ্রা হিসাবে মুদ্রা সংরক্ষণ করুন যেহেতু তারা ভাসমান পয়েন্ট সংখ্যা হিসাবে সংরক্ষণ করা হবে"।
জোশ নোয়ে

কেবলমাত্র একটি অনুস্মারক: parseFloat('22w')হ'ল 22এবং parseFloat('w22')হ'লNaN
আইজি পাসকুয়েল

65

আপনি Numberকনস্ট্রাক্টর / ফাংশনও ব্যবহার করতে পারেন (কোনও রেডিক্সের প্রয়োজন হয় না এবং পূর্ণসংখ্যা এবং ভাসমান উভয়ের জন্য ব্যবহারযোগ্য):

Number('09'); /=> 9
Number('09.0987'); /=> 9.0987

বিকল্প হিসাবে অ্যান্ডি ই মতামতে বলেছেন যা আপনি +রূপান্তরের জন্য ব্যবহার করতে পারেন

+'09'; /=> 9
+'09.0987'; /=> 9.0987

এটি IE11
প্যান্টস

@ প্যান্টগুলি যেগুলি ES6 এ বিল্ট-ইন অবজেক্টের এক্সটেনশনের বিষয়ে , ব্যবহারে সক্ষম হতে হবে নাNumber
KooiInc


10
var formatter = new Intl.NumberFormat("ru", {
  style: "currency",
  currency: "GBP"
});

alert( formatter.format(1234.5) ); // 1 234,5 £

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat


আমার এই ধারণা ছিল না।
প্রোটোমেটা

এখন পর্যন্ত সেরা উত্তর। parseFloat? যথার্থ নরক? না, থেক্স! Intl.NumberFormatএটি নখ।
জোশুয়া বার্নস

2

সংখ্যার সাথে তুলনা করতে এবং খেলতে জাভাস্ক্রিপ্ট ফাংশনগুলির উপর নির্ভর করা মোটামুটি ঝুঁকিপূর্ণ। জাভাস্ক্রিপ্টে (0.1 + 0.2 == 0.3) গোলাকার ত্রুটির কারণে মিথ্যা ফিরে আসবে। Math.js গ্রন্থাগারটি ব্যবহার করুন।


1

একটি সহজ সংক্ষিপ্ত হাত উপায় হ'ল + এক্স ব্যবহার করে এটি দশমিক সংখ্যার পাশাপাশি চিহ্নটিকে অক্ষত রাখে। অন্য বিকল্পটি হল পার্সফ্লোট (এক্স) ব্যবহার করা। পার্সফ্লোয়াট (এক্স) এবং + এক্স এর মধ্যে পার্থক্য হল ফাঁকা স্ট্রিং + এক্স এর জন্য 0 0 যেখানে পার্সফ্লোট (এক্স) হিসাবে এনএএন দেয়।


1

আমি এটি করতে এবং সমস্ত ত্রুটিযুক্ত ডেটা ধরতে একটি সামান্য সহায়ক ফাংশন তৈরি করেছি

function convertToPounds(str) { 
    var n = Number.parseFloat(str);
    if(!str || isNaN(n) || n < 0) return 0;
    return n.toFixed(2);
}

ডেমো এখানে আছে

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