যদি কোনও বিবৃতি ছাড়াই নাএন মানকে 0 তে রূপান্তর করার উপায় আছে:
if (isNaN(a)) a = 0;
প্রতিবার আমার ভেরিয়েবলগুলি পরীক্ষা করা খুব বিরক্তিকর।
function noNaN( n ) { return isNaN( n ) ? 0 : n; }এবং তারপরেnoNaN( a )
যদি কোনও বিবৃতি ছাড়াই নাএন মানকে 0 তে রূপান্তর করার উপায় আছে:
if (isNaN(a)) a = 0;
প্রতিবার আমার ভেরিয়েবলগুলি পরীক্ষা করা খুব বিরক্তিকর।
function noNaN( n ) { return isNaN( n ) ? 0 : n; }এবং তারপরেnoNaN( a )
উত্তর:
তুমি এটি করতে পারো:
a = a || 0
... যা কোনও "ভুয়া" মান থেকে রূপান্তর করবে 0।
"ভুয়া" মানগুলি হ'ল:
falsenullundefined0"" ( খালি স্ট্রিং )NaN (একটি সংখ্যা নয়)বা এটি যদি আপনি পছন্দ করেন:
a = a ? a : 0;
... যা উপরের মত একই প্রভাব ফেলবে।
অভিপ্রায়টি যদি কেবলমাত্র না হয়ে আরও বেশি পরীক্ষা করার জন্য হয় NaNতবে আপনিও এটি করতে পারেন তবে প্রথমে একটি টু নাম্বার রূপান্তরটি করুন।
a = +a || 0
এটি aএকটি সংখ্যায় রূপান্তর করতে চেষ্টা করতে অ্যানারি + অপারেটর ব্যবহার করে । সংখ্যাযুক্ত স্ট্রিংয়ের মতো জিনিসগুলিকে '123'একটি সংখ্যায় রূপান্তর করার এতে অতিরিক্ত সুবিধা রয়েছে ।
কেবলমাত্র অপ্রত্যাশিত জিনিসটি হতে পারে যদি কেউ কোনও অ্যারে পাস করে যা সফলভাবে একটি সংখ্যায় রূপান্তর করতে পারে:
+['123'] // 123
এখানে আমাদের একটি অ্যারে রয়েছে যার একটি একক সদস্য রয়েছে এটি একটি সংখ্যার স্ট্রিং। এটি সফলভাবে একটি সংখ্যায় রূপান্তরিত হবে।
NaNমান নিয়ে উদ্বিগ্ন । এটি সমস্ত অ-সংখ্যা মানের জন্য পরীক্ষা হিসাবে কাজ করবে না। যদিও আমরা প্রথমে একটি নাম্বার রূপান্তর চেষ্টা করতে পারি। আমি আপডেট করব।
একটি ডাবল-টিলড (ডাবল বিটওয়াইজ নট) - ~~- জাভাস্ক্রিপ্টে কিছু আকর্ষণীয় কাজ করে। উদাহরণস্বরূপ আপনি এর পরিবর্তে Math.floorবা এমনকি বিকল্প হিসাবে এটি ব্যবহার করতে পারেন parseInt("123", 10)! এটি ওয়েবে প্রচুর আলোচনা করা হয়েছে, সুতরাং এটি এখানে কাজ করে কেন আমি সেখানে যাব না তবে আপনি যদি আগ্রহী হন: জাভাস্ক্রিপ্টে "ডাবল টিল্ড" (~~) অপারেটর কী?
আমরা NaNএকটি সংখ্যায় রূপান্তর করতে ডাবল-টিলডের এই সম্পত্তিটি কাজে লাগাতে পারি , এবং আনন্দের সাথে সেই সংখ্যাটি শূন্য!
console.log(~~NaN); // 0
~~এ সব, আমি শুধু দিকে এটি ব্যবহৃত সঙ্গে parseFloat()যেমন: ~~parseFloat($variable);। খুব ঝরঝরে :) +1
আপনার নিজস্ব পদ্ধতি লিখুন, এবং যেখানেই আপনি একটি নম্বর চান এটি এটিকে ব্যবহার করুন:
function getNum(val) {
if (isNaN(val)) {
return 0;
}
return val;
}
nullতবে এটি আমার প্রত্যাশিত ফলাফল দেয় না 0। আমার পয়েন্ট এখানে আরও: stackoverflow.com/questions/115548/why-is-isnannull-false-in-js
Number(val)পরিবর্তে এটি ব্যবহার করে শেষ করেছি 0যখন এটি কোনও উপায়ে বুঝতে পারে না তখন তা ফিরে আসে ।
যে কোনও কিছুর জন্য সহজ এবং কার্যকর কিছু:
function getNum(val) {
val = +val || 0
return val;
}
... যা কোনও "ভুয়া" মান থেকে রূপান্তর করবে 0।
"ভুয়া" মানগুলি হ'ল:
falsenullundefined0"" ( খালি স্ট্রিং )NaN (একটি সংখ্যা নয়)এটি চালিয়ে যাওয়ার পরিবর্তে আপনি চালিয়ে যেতে পারেন, কেন ব্যাক আপ করবেন না এবং অবাক হন না কেন আপনি প্রথম স্থানে কোনও এনএএন তে চলেছেন?
অপারেশনে সংখ্যার ইনপুটগুলির কোনও যদি NaN হয় তবে আউটপুটও NaN হবে। বর্তমান আইআইইই ফ্লোটিং পয়েন্ট স্ট্যান্ডার্ডটি সেভাবে কাজ করে (এটি কেবল জাভাস্ক্রিপ্ট নয়)। সেই আচরণটি একটি ভাল কারণের জন্য : অন্তর্নিহিত উদ্দেশ্য হ'ল এটি আপনাকে জালিয়াতি না বুঝে কোনও বোগাস ফলাফল ব্যবহার করা থেকে বিরত রাখা।
পথ NaN কাজ করে কিছু কিছু উপ-উপ-উপ-অপারেশনে কুপথ নিচে (যে নিম্ন স্তরের একটি NaN উত্পাদক), চূড়ান্ত ফলাফল হবে যায় হয় এছাড়াও নান যা আপনি অবিলম্বে এমনকি যদি একটি ত্রুটি হিসাবে স্বীকৃতি করব হতে আপনার তর্ক পরিচালনা করার ক্ষেত্রে ত্রুটি (সম্ভবত ছোঁড়া / ধরা?) এখনও সম্পূর্ণ হয়নি।
গাণিতিক গণনার ফলাফল হিসাবে এনএএন সর্বদা নির্দেশ করে যে গাণিতিকের বিশদগুলিতে কিছু খারাপ হয়ে গেছে। এটি কম্পিউটারের জন্য "এখানে ডিবাগিং প্রয়োজন" বলার একটি উপায়। কিছু সংখ্যক যা এখনও খুব সহজেই সঠিকভাবে চালিয়ে যাওয়ার কোনও উপায় সন্ধান করার পরিবর্তে (আসলেই আপনি যা চান তাই করতে চান?), কেন সমস্যাটি খুঁজে বের করে তা সমাধান করবেন না।
জাভাস্ক্রিপ্ট মধ্যে একটি সাধারণ সমস্যা উভয় যে parseInt(...)এবং parseFloat(...)NaN ফিরে আসবে যদি একটি অর্থহীন যুক্তি (প্রদত্ত null, ''ইত্যাদি)। উচ্চতর স্তরের পরিবর্তে সমস্যাটি সর্বনিম্ন স্তরে সম্ভব স্থির করুন। তারপরে সামগ্রিক গণনার ফলাফলটি বোঝার ভাল সুযোগ রয়েছে এবং আপনি পুরো গণনার ফলাফলের জন্য কিছু ম্যাজিক সংখ্যা (0 বা 1 বা যাই হোক না কেন) প্রতিস্থাপন করছেন না। ((পার্সিয়ান্ট (foo.value) || 0) এর কৌশলটি কেবল পরিমাণের জন্য কাজ করে, পণ্য নয় - যে পণ্যগুলির জন্য আপনি ডিফল্ট মান 0 এর চেয়ে 1 হতে চান তবে নির্দিষ্ট মানটি 0 হয় না তবে)
কোডিংয়ের স্বাচ্ছন্দ্যে আপনি কোনও ফাংশন ব্যবহারকারীর কাছ থেকে একটি মান পুনরুদ্ধার করতে চান, এটি পরিষ্কার করুন এবং প্রয়োজনে একটি ডিফল্ট মান প্রদান করুন, যেমন:
function getFoobarFromUser(elementid) {
var foobar = parseFloat(document.getElementById(elementid).innerHTML)
if (isNaN(foobar)) foobar = 3.21; // default value
return(foobar.toFixed(2));
}
কিভাবে একটি রেইগেক্স ?
function getNum(str) {
return /[-+]?[0-9]*\.?[0-9]+/.test(str)?parseFloat(str):0;
}
সঠিকভাবে প্রবেশ করা সংখ্যার গণনা করার জন্য নীচের কোডটি NaN উপেক্ষা করবে
যে পদ্ধতিগুলি nNN ব্যবহার করে সেগুলি কাজ করে না যদি আপনি পার্সেন্ট ব্যবহার করার চেষ্টা করছেন তবে উদাহরণস্বরূপ:
parseInt("abc"); // NaN
parseInt(""); // NaN
parseInt("14px"); // 14
তবে দ্বিতীয় ক্ষেত্রে isNaN মিথ্যা উত্পাদন করে (যেমন নাল স্ট্রিং একটি সংখ্যা)
n="abc"; isNaN(n) ? 0 : parseInt(n); // 0
n=""; isNaN(n) ? 0: parseInt(n); // NaN
n="14px"; isNaN(n) ? 0 : parseInt(n); // 14
সংক্ষেপে, নাল স্ট্রিংটি isNaN দ্বারা একটি বৈধ সংখ্যা হিসাবে বিবেচিত হয় তবে পার্সেন্টের মাধ্যমে নয়। ওএসএক্স মোজভেভে সাফারি, ফায়ারফক্স এবং ক্রোম দিয়ে যাচাই করা হয়েছে।
var i = [NaN, 1,2,3];
var j = i.map(i =>{ return isNaN(i) ? 0 : i});
console.log(j)
[0,1,2,3]
ব্যবহারকারী 113716 সমাধানটি ব্যবহার করে, যা সেই সমস্ত এড়াতে দুর্দান্ত is অন্যথায় আমি এটি পাঠ্যবক্স ইউনিট এবং পাঠ্যবক্সের পরিমাণ থেকে আমার উপমোটিক পাঠ্যবক্স গণনা করার জন্য এইভাবে এটি প্রয়োগ করেছি।
ইউনিট এবং পরিমাণের পাঠ্য বাক্সগুলিতে অ-সংখ্যা লেখার প্রক্রিয়াতে, তাদের মানগুলি শূন্য দ্বারা প্রতিস্থাপিত হয় সুতরাং ব্যবহারকারীর ডেটা চূড়ান্ত পোস্টিংয়ের কোনও অ-সংখ্যা নেই।
<script src="/common/tools/jquery-1.10.2.js"></script>
<script src="/common/tools/jquery-ui.js"></script>
<!----------------- link above 2 lines to your jquery files ------>
<script type="text/javascript" >
function calculate_subtotal(){
$('#quantity').val((+$('#quantity').val() || 0));
$('#unit').val((+$('#unit').val() || 0));
var calculated = $('#quantity').val() * $('#unit').val() ;
$('#subtotal').val(calculated);
}
</script>
<input type = "text" onChange ="calculate_subtotal();" id = "quantity"/>
<input type = "text" onChange ="calculate_subtotal();" id = "unit"/>
<input type = "text" id = "subtotal"/>
এই সহজ ফাংশন চেষ্টা করুন
var NanValue = function (entry) {
if(entry=="NaN") {
return 0.00;
} else {
return entry;
}
}