আমার একটি বিভাগের ফলাফল রয়েছে এবং আমি ফলাফলের সংখ্যার দশমিক অংশটি বাতিল করতে চাই।
কিভাবে আমি এটি করতে পারব?
আমার একটি বিভাগের ফলাফল রয়েছে এবং আমি ফলাফলের সংখ্যার দশমিক অংশটি বাতিল করতে চাই।
কিভাবে আমি এটি করতে পারব?
উত্তর:
আপনি ব্যবহার করতে পারেন...
Math.trunc() (ভগ্নাংশের অংশ কেটে নিন, নীচে দেখুন)Math.floor() (নিচে সুসম্পন্ন)Math.ceil() (বৃত্তাকার) Math.round() (নিকটতম পূর্ণসংখ্যার বৃত্তাকার)... আপনি কীভাবে দশমিক মুছে ফেলতে চেয়েছিলেন তার উপর নির্ভরশীল।
Math.trunc()এখনও সমস্ত প্ল্যাটফর্মগুলিতে সমর্থিত নয় (যেমন আইই), তবে আপনি সহজেই এর মধ্যে একটি পলিফিল ব্যবহার করতে পারেন ।
বিভাজন অপারেটর (.eg |0) ব্যবহার করে দুর্দান্ত প্ল্যাটফর্ম সমর্থন সহ ভগ্নাংশের অংশ কেটে দেওয়ার আরও একটি পদ্ধতি । কোনও সংখ্যায় বিটওয়াইস অপারেটর ব্যবহারের পার্শ্ব-প্রতিক্রিয়াটি হ'ল এটি তার অপারেন্ডকে একটি স্বাক্ষরিত 32 বিট পূর্ণসংখ্যার হিসাবে বিবেচনা করবে, সুতরাং ভগ্নাংশের উপাদানটি অপসারণ করবে। মনে রাখবেন এটি 32 বিটের চেয়ে বড় অঙ্কের সংখ্যাগুলিও করবে।
আপনি ভাসমান পয়েন্ট পাটিগণিতের সাথে দশমিক রাউন্ডিংয়ের অসাধ্যতার কথাও বলতে পারেন।
প্রয়োজনীয় পাঠ্য - প্রতিটি কম্পিউটার বিজ্ঞানীর ভাসমান-পয়েন্ট পাটিগণিত সম্পর্কে কী জানা উচিত ।
> (2.305*100)|0 > 230 > (2.3*100)|0 > 229
2.3*100জাভাস্ক্রিপ্টের ফলাফল 229.99999999999997, সুতরাং মনে হচ্ছে বিটওয়াইস অপারেটর আপনার উদাহরণটি সঠিকভাবে এটি সম্পাদন করছে।
|0Bit৪ বিট পূর্ণসংখ্যার ব্যবহারের কি এর মতো কোনও সমাধান রয়েছে ?
দশমিক কেটে যাওয়ার জন্য আপনি বিটওয়াইড অপারেটরগুলিও ব্যবহার করতে পারেন।
যেমন
var x = 9 / 2;
console.log(x); // 4.5
x = ~~x;
console.log(x); // 4
x = -3.7
console.log(~~x) // -3
console.log(x | 0) // -3
console.log(x << 0) // -3
বিটওয়াইজ অপারেশনগুলি ম্যাথ ফাংশনগুলির চেয়ে যথেষ্ট কার্যকর are ডাবল নট বিটওয়াইজ অপারেটরটিও নগন্য পরিমাণে x | 0এবং x << 0বিটওয়াইজ অপারেশনগুলিকে সামান্য ছাড়িয়ে গেছে বলে মনে হচ্ছে ।
// 952 milliseconds
for (var i = 0; i < 1000000; i++) {
(i * 0.5) | 0;
}
// 1150 milliseconds
for (var i = 0; i < 1000000; i++) {
(i * 0.5) << 0;
}
// 1284 milliseconds
for (var i = 0; i < 1000000; i++) {
Math.trunc(i * 0.5);
}
// 939 milliseconds
for (var i = 0; i < 1000000; i++) {
~~(i * 0.5);
}
আরও লক্ষণীয় যে বিটওয়াইজ নট অপারেটর গাণিতিক ক্রিয়াকলাপগুলির তুলনায় অগ্রাধিকার গ্রহণ করে, তাই আপনাকে উদ্দেশ্যযুক্ত ফলাফল পেতে প্যারেন্টেসিসের সাথে গণনাগুলি ঘিরতে হবে:
x = -3.7
console.log(~~x * 2) // -6
console.log(x * 2 | 0) // -7
console.log(x * 2 << 0) // -7
console.log(~~(x * 2)) // -7
console.log(x * 2 | 0) // -7
console.log(x * 2 << 0) // -7
ডাবল বিটওয়াইজ নন অপারেটর সম্পর্কে আরও তথ্য ডাবল বিটওয়াইজ নট (~~) এ পাওয়া যাবে
আপনি করতে পারেন
parseInt(a/b)
parseIntবৃহৎ সংখ্যক জন্য নির্ভরযোগ্যভাবে কাজ করবে না, কারণ এটি প্রথমে তার যুক্তিটিকে স্ট্রিনে রূপান্তর করে কাজ করে এবং বৃহত সংখ্যার জন্য ফলাফল ক্ষতিকারক স্বরলিপি ব্যবহার করবে। উদাহরণস্বরূপ: var n = 22222222222222222222222; parseInt(n);ফিরে আসবে 2, কারণ n.toString()ফিরে আসে 2.2222222222222223e+22।
parseInt()তার উদ্দেশ্যটির জন্যও ব্যবহার করছে না , এটি একটি স্ট্রিংয়ের একটি নম্বর নেওয়া এবং একটিকে ফেরত দেওয়া Number।
আপনি নিম্নলিখিত কোডটি ব্যবহার করে দশমিক পয়েন্ট (এখানে 2 অঙ্ক) পরে নির্দিষ্ট একটি সংখ্যাও প্রদর্শন করতে পারেন:
var num = (15.46974).toFixed(2)
console.log(num) // 15.47
console.log(typeof num) // string
ব্যবহার Math.round()।
(অ্যালেক্সের উত্তর আরও ভাল; আমি একটি অনুমান করেছি :)
ES2015 সহ, Math.trunc () উপলব্ধ।
Math.trunc(2.3) // 2
Math.trunc(-2.3) // -2
Math.trunc(22222222222222222222222.3) // 2.2222222222222223e+22
Math.trunc("2.3") // 2
Math.trunc("two") // NaN
Math.trunc(NaN) // NaN
এটি আইই ১১ বা তার নীচে সমর্থিত নয়, তবে এজ এবং অন্যান্য প্রতিটি আধুনিক ব্রাউজারে কাজ করে।
Math.trunc(value * Math.pow(10,x)) / Math.pow(10,x)কাজ করবে ভাবতে কি নির্দোষ হবে?
value = 2.3এবং x = 2ফিরে আসবে 2.29। আমার কাছে এর চেয়ে ভাল পরামর্শ নেই।
toFixed বৃত্তাকার মত আচরণ করবে।
মেঝে যেমন আচরণের জন্য% ব্যবহার করুন:
var num = 3.834234;
var floored_num = num - (num % 1); // floored_num will be 3
উপরের পোস্টগুলির সাহায্যে বিশদ ব্যাখ্যায় সংবেদনশীল এখানে:
1. ম্যাথ.ট্রুঙ্ক (): এটি বিন্দু দ্বারা অনুসরণ করা হয় এমন অঙ্কগুলি সরাতে ব্যবহৃত হয়। এটি স্পষ্টত রূপান্তরিত করে। তবে, IE এ সমর্থিত নয়।
উদাহরণ:
ম্যাথ.ট্রুঙ্ক (10.5) // 10
ম্যাথ.ট্রুঙ্ক (-10.5) // -10
অন্যান্য বিকল্প উপায়: বিটওয়াইসের ব্যবহার অপারেটর নয়:
উদাহরণ:
x = 5.5
~~ x // 5
২. ম্যাথ.ফ্লুর (): এটি সর্বনিম্ন পূর্ণসংখ্যার মানটি গ্রহণযোগ্য হিসাবে ব্যবহৃত হয়। এটি সমস্ত ব্রাউজারে সমর্থিত।
উদাহরণ:
ম্যাথ.ফ্লুর (10.5) // 10
ম্যাথ.ফ্লুর (-10.5) // -11
৩. ম্যাথ.সিল (): এটি সর্বোচ্চ সংখ্যার সম্ভাব্য মান প্রদান করতে ব্যবহৃত হয়। এটি সমস্ত ব্রাউজারে সমর্থিত।
উদাহরণ:
ম্যাথ.সিল (10.5) // 11
ম্যাথ.সিল (-10.5) // -10
4. ম্যাথ.উইন্ড (): এটি নিকটতম পূর্ণসংখ্যার সাথে গোলাকার। এটি সমস্ত ব্রাউজারে সমর্থিত।
উদাহরণ:
ম্যাথ.উন্ড (10.5) // 11
ম্যাথ.উইন্ড (-10.5) // -10
ম্যাথ.উন্ড (10.49) // 10
ম্যাথ.উন্ড (-10.51) // -11
এটি তাদের জন্য যারা ব্যবহারকারীদের দশমিক সংখ্যা প্রবেশ করতে বাধা দিতে চান
<input id="myInput" onkeyup="doSomething()" type="number" />
<script>
function doSomething() {
var intNum = $('#myInput').val();
if (!Number.isInteger(intNum)) {
intNum = Math.round(intNum);
}
console.log(intNum);
}
</script>
দশমিক অংশ সম্পূর্ণ করতে আপনি টু ফিক্সড (0) ব্যবহার করতে পারেন বা আর্গুমেন্টে সংখ্যাটি সরবরাহ করতে পারেন যা আপনি দশমিক কাটা হতে চান।
দ্রষ্টব্য: টু ফিক্সড নম্বরটি স্ট্রিংয়ে রূপান্তর করবে।
উদাহরণ স্বরূপ:
var x = 9.656;
x.toFixed(0); // returns 10
x.toFixed(2); // returns 9.66
x.toFixed(4); // returns 9.6560
x.toFixed(6); // returns 9.656000
অথবা
parseInt("10"); // returns 10
parseInt("10.33"); // returns 10
parseInt("10 20 30"); // returns 10
parseInt("10 years"); // returns 10
parseInt("years 10"); // returns NaN
Math.floor()হবে বৃদ্ধি সংখ্যাগত মান যখন সংখ্যা নেতিবাচক । এইভাবেMath.floor(-1.2) -> -2যখনMath.floor(1.2) -> 1।parseInt(-1.2) -> -1( @ ফ্লয়েডপিংক দ্বারা উল্লিখিত হিসাবে ) পজিটিভ এবং নেতিবাচক উভয় সংখ্যার জন্য প্রত্যাশার হিসাবে দশমিক অংশটি বাতিল করবে ।