উত্তর:
মডুলাস ব্যবহার করে কাজ করবে:
num % 1 != 0
// 23 % 1 = 0
// 23.5 % 1 = 0.5
নোট করুন যে এটি বিন্যাস নির্বিশেষে সংখ্যার সংখ্যাগত মানের উপর ভিত্তি করে । এটি পূর্ণ সংখ্যার সাথে সংখ্যাসূচক স্ট্রিংকে একটি নির্দিষ্ট দশমিক পয়েন্ট সহ পূর্ণসংখ্যার সমতুল্য আচরণ করে:
'10.0' % 1; // returns 0
10 % 1; // returns 0
'10.5' % 1; // returns 0.5
10.5 % 1; // returns 0.5
20.0
একটি স্ট্রিম হিসাবে প্রকাশ না করা হয় তবে প্রোগ্রামিকভাবে দশমিক বিন্দু রয়েছে কিনা তা বলা অসম্ভব । এছাড়াও, অন্যান্য সমাধানগুলির মধ্যে কোনওটিই এটি মোকাবেলা না করার জন্য একটি নিম্ন ভোট পায়নি ;-)
"10."
একটি সম্পূর্ণ সংখ্যা এবং ফলাফল হ'ল "10"
বা হিসাবে একই হবে 10
।
Number.isInteger(23); // true
Number.isInteger(1.5); // false
Number.isInteger("x"); // false:
সংখ্যা.আইসইন্টেইজার () ES6 স্ট্যান্ডার্ডের একটি অংশ এবং আইই 11 এ সমর্থিত নয়।
এটা তোলে জন্য মিথ্যা ফেরৎ NaN
, Infinity
এবং অ সাংখ্যিক আর্গুমেন্ট যখন x % 1 != 0
আয় সত্য।
Number.isInteger(12.0)
আয় true
।
Number.isInteger('1e3')
সত্য false
, যদিও Number.isInteger(1e3)
এটি সত্য। প্রশ্নই অভিপ্রায় ধরে নেওয়া যাক (বরং উপস্থাপনা একটি দশমিক বিন্দু প্রকৃত উপস্থিতি বেশি) অ পূর্ণসংখ্যা মান খুঁজে, তারপর স্ট্রিং মান '12 ২.0 'হল উচিত যেমন একটি পূর্ণসংখ্যা প্রতিনিধিত্ব করে, কিন্তু আবার পাস, Number.isInteger('12.0')
হয় false
।
number
পুরো কিনা ঠিক । আপনার ইনপুটটি যদি একটি স্ট্রিং হয় তবে অবশ্যই আপনাকে অবশ্যই এটি number
প্রথম মাধ্যমে রূপান্তর করতে হবে parseFloat()
অবশ্যই অবশ্যই via
বা আপনি এটি ব্যবহার করতে পারেন এটি দশমিক নয় কিনা তা জানতে:
string.indexOf(".") == -1;
yournumber.toString.indexOf(".")
সর্বাধিক সাধারণ সমাধান হ'ল সংখ্যার পূর্ণসংখ্যার অংশটি কেটে ফেলা এবং এটির মতো শূন্যের সাথে তুলনা করা:
function Test()
{
var startVal = 123.456
alert( (startVal - Math.floor(startVal)) != 0 )
}
startVal != Math.floor(startVal)
?
Math.Floor
ফাংশন একটি দশমিক মান নেয় এবং বৃহত্তম দশমিক মান জাভাস্ক্রিপ্ট অনুমতিপ্রাপ্ত হয় 2^53 - 1
বা 9007199254740991
। যেহেতু 893144042145698745.3
এই সর্বাধিকের চেয়ে বড়, কাজটি ব্যর্থ হবে।
// কীভাবে এটি বাইট-ইনিং?
Number.prototype.isInt= function(){
return this== this>> 0;
}
আমি সবসময় জাভাস্ক্রিপ্ট-এ বিট অপারেটরদের জন্য খারাপ লাগি-
তারা খুব কমই কোন অনুশীলন পেতে।
>>
মানটি একটি স্বাক্ষরিত 32-বিট পূর্ণসংখ্যায় রূপান্তর করে ।
number = 20.5
if (number == Math.floor(number)) {
alert("Integer")
} else {
alert("Decimal")
}
খুব দুর্দান্ত এবং XX.0 এর মতো জিনিসগুলির জন্যও কাজ করে! এটি কাজ করে কারণ ম্যাথ.ফ্লুর () কোনও দশমিক ছাড়লে তা যদি থাকে তবে যদি ফ্লোরটি মূল সংখ্যা থেকে আলাদা হয় আমরা জানি এটি একটি দশমিক! এবং কোনও স্ট্রিং রূপান্তর নেই :)
var re=/^-?[0-9]+$/;
var num=10;
re.test(num);
num= 999999999999999999999
।
Number.isInteger()
সম্ভবত সবচেয়ে সংক্ষিপ্ত। এটি যদি পূর্ণসংখ্যা হয় তবে এটি সত্য হয় এবং যদি তা না হয় তবে এটি মিথ্যা।
function isDecimal(n){
if(n == "")
return false;
var strCheck = "0123456789";
var i;
for(i in n){
if(strCheck.indexOf(n[i]) == -1)
return false;
}
return true;
}
parseInt(num) === num
একটি সংখ্যা পাস করার পরে, parseInt()
কেবল সংখ্যা হিসাবে পূর্ণ হিসাবে:
parseInt(3.3) === 3.3 // false because 3 !== 3.3
parseInt(3) === 3 // true
parseInt(3.0) === 3.0 // true
সংখ্যা স্ট্রিংকে অ্যারেতে রূপান্তর করুন, দশমিক বিন্দু দ্বারা বিভক্ত। তারপরে, অ্যারের যদি একটি মাত্র মান থাকে, তার মানে স্ট্রিমের দশমিক দশমিক।
if(!number.split(".")[1]){
//do stuff
}
এইভাবে আপনি আরও জানতে পারবেন যে পূর্ণসংখ্যা এবং দশমিকটি আসলে কী। আরও উন্নত উদাহরণ হবে।
number_to_array = string.split(".");
inte = number_to_array[0];
dece = number_to_array[1];
if(!dece){
//do stuff
}
আমার গার্ড লাইব্রেরির একটি অংশ এখানে দেওয়া হয়েছে (ডেভিড হারম্যান দ্বারা কার্যকর জাভাস্ক্রিপ্ট দ্বারা অনুপ্রাণিত):
var guard = {
guard: function(x) {
if (!this.test(x)) {
throw new TypeError("expected " + this);
}
}
// ...
};
// ...
var number = Object.create(guard);
number.test = function(x) {
return typeof x === "number" || x instanceof Number;
};
number.toString = function() {
return "number";
};
var uint32 = Object.create(guard);
uint32.test = function(x) {
return typeof x === "number" && x === (x >>> 0);
};
uint32.toString = function() {
return "uint32";
};
var decimal = Object.create(guard);
decimal.test = function(x) {
return number.test(x) && !uint32.test(x);
};
decimal.toString = function() {
return "decimal";
};
uint32.guard(1234); // fine
uint32.guard(123.4); // TypeError: expected uint32
decimal.guard(1234); // TypeError: expected decimal
decimal.guard(123.4); // fine
আপনি এটিকে 10 দিয়ে গুণতে পারেন এবং তারপরে 10 দিয়ে একটি " মডুলো " অপারেশন / বিভাজন করতে পারেন এবং সেই দুটি অপারেশনের ফলাফলটি শূন্য কিনা তা পরীক্ষা করতে পারেন। সেই দুটি অপারেশনের ফলাফল আপনাকে দশমিক পয়েন্টের পরে প্রথম অঙ্ক দেবে । ফলাফলটি যদি শূন্যের সমান হয় তবে সংখ্যাটি একটি সম্পূর্ণ সংখ্যা।
if ( (int)(number * 10.0) % 10 == 0 ){
// your code
}
function isDecimal(num) {
return (num !== parseInt(num, 10));
}
দশমিক অংশটি, যা রাউন্ডিংয়ের জন্য ব্যবহৃত হতে পারে তা বাতিল করতে আপনি বিটওয়াইজ অপারেশনগুলি ব্যবহার করতে পারেন যা মান ( ^ 0
বা ~~
) পরিবর্তন করে না । সংখ্যাটি গোল করার পরে এটি মূল মানের সাথে তুলনা করা হয়:
function isDecimal(num) {
return (num ^ 0) !== num;
}
console.log( isDecimal(1) ); // false
console.log( isDecimal(1.5) ); // true
console.log( isDecimal(-0.5) ); // true
function isWholeNumber(num) {
return num === Math.round(num);
}
কোনও সংখ্যার দশমিক স্থান রয়েছে কিনা তা পরীক্ষা করতে আপনি নীচের ফাংশনটি ব্যবহার করতে পারেন:
function hasDecimal(num){
return !!(num % 1);
}
console.log(hasDecimal(2)); //false
console.log(hasDecimal(2.32423)); //true
সুতরাং আপাতদৃষ্টিতে কিছু ব্যবহারকারী ব্যাখ্যা চান। আমি এটিকে টুকরো টুকরো করব: (সংখ্যা% 1)
প্যারেনথেসিস মানে এই অপারেশনগুলি প্রথমে সম্পাদন করা। num - একটি ভেরিয়েবল ফাংশন দ্বারা পাস। % - একটি মডুলাস প্রতীক যা বাম সংখ্যাটি ডান দ্বারা ভাগ করার চেষ্টা করে। যদি কোনও অবশিষ্ট থাকে তবে এটি দশমিক হিসাবে ফেরত দেয়। যদি এটি সমানভাবে বিভক্ত হয় তবে এটি 0 প্রদান করে।
সুতরাং, আমাদের এখন পর্যন্ত যা আছে তা যোগ করুন,, (সংখ্যা% 1) ফিরে আসবে:
0 যখন সমানভাবে বিভক্ত হয় OR #। ##### না হলে
0 == মিথ্যা।
[ANY_NUMBER_NOT_ZERO] == সত্য।
উদাহরণ: নতুন বুলিয়ান (0) মিথ্যা নতুন বুলিয়ান (12312.1231) সত্য
অন্যান্য বিকল্পগুলি: কোনও ব্যবহারকারী (নাম্বার% 1) এর মান ফেরত দেওয়ার চেষ্টা করতে পারে, যা মূলত একই জিনিসটি অর্জন করবে। যেহেতু রিটার্ন (0) মিথ্যা এবং রিটার্ন (1.213113) সত্য।
তবে আমি বুলিয়ান মানটি ফিরিয়ে দিতে চেয়েছিলাম। সুতরাং শর্টকাট হিসাবে একটি বুলিয়ান একটি মান জোর করার জন্য আমি একটি যোগ! এটির আগে প্রতীক
যতজনই জানেন হয়তো।,! মানে না কিন্তু এটি একটি বুলিয়ান মধ্যে একটি মান জোর।
যেহেতু! সিমোবোল মানটিকে একটি বুলিয়ান হিসাবে জোর করে এবং এটির মানটিকে বিপরীত করে। আমি ব্যবহার করি !! মানটিকে একটি বুলিয়ান হিসাবে জোর করতে এবং এর মানটিকে তার মূল বুলিয়ান মানটিতে ফিরিয়ে দেওয়া।
চেক নম্বরের জন্য কাজটি হ'ল দশমিক বা পুরো সংখ্যা
function IsDecimalExist(p_decimalNumber) {
var l_boolIsExist = true;
if (p_decimalNumber % 1 == 0)
l_boolIsExist = false;
return l_boolIsExist;
}
সম্ভবত এটি আপনার পক্ষে কাজ করে?
সংখ্যায় কমা আছে কিনা তা পরীক্ষা করতে এটি রেজেক্স ব্যবহার করে এবং যদি তা না থাকে তবে এটি কমা এবং স্ট্রাইপ যুক্ত করবে।
var myNumber = '50';
function addCommaStripe(text){
if(/,/.test(text) == false){
return text += ',-';
} else {
return text;
}
}
myNumber = addCommaStripe(myNumber);
মানটি স্ট্রিং (উদাহরণস্বরূপ <input
) হলে নিম্নলিখিতটি ব্যবহার করুন :
Math.floor(value).toString() !== value
আমি .toString()
যখন ক্ষেত্রে value == "1."
(দশমিক বিভাজক বা অন্য স্ট্রিংয়ের সাথে শেষ হয়) এর ক্ষেত্রেও এটি কাজ করতে তলাতে যুক্ত করি । এছাড়াও Math.floor
সর্বদা কিছু মান ফেরত দেয় তাই .toString()
কখনও ব্যর্থ হয় না।