জাভাস্ক্রিপ্ট 2 দশমিক জায়গায় ফ্ল্যাট প্রদর্শন করে


315

আমি 2 টি দশমিক স্থানে একটি সংখ্যা প্রদর্শন করতে চেয়েছিলাম।

আমি ভেবেছিলাম আমি toPrecision(2)জাভাস্ক্রিপ্ট ব্যবহার করতে পারি ।

তবে নম্বরটি থাকলে 0.05আমি পাই 0.0500। আমি বরং এটি একই থাকতাম

এটি জেএসবিনে দেখুন

এই কাজ করতে সবচেয়ে ভালো উপায় কি?

আমি কয়েকটি সমাধান কোডিংয়ের কথা ভাবতে পারি, তবে আমি কল্পনা করব (আমি আশা করি) এরকম কিছু তৈরি করা হয়েছে?

উত্তর:


559
float_num.toFixed(2);

দ্রষ্টব্য:toFixed() নির্দিষ্ট দৈর্ঘ্য পূরণের প্রয়োজনে জিরোগুলির সাথে বৃত্তাকার বা প্যাড করবে।


61
কিন্তু এটি স্ট্রিং ফিরে, ভাসা না!
আনোয়ার

38
প্রশ্ন লেখক এটিকে "প্রদর্শন" করতে চান, তাই একটি স্ট্রিং সঠিক
ক্রিস্টোফ মারোইস

7
এবং আপনি মাত্র দুটি ডেসিমাল রেখে স্ট্রিংটিকে ফ্লোতে রূপান্তর করতে সর্বদা পার্সফ্লোট (ফ্লোট_নাম.টোফিক্সড (2)) ব্যবহার করতে পারেন।
হানক্রেকর্ডস

3
@ আনোয়ার আপনি নির্ভরযোগ্যভাবে কোনও ফ্লোটকে গোল করতে পারবেন না (তর্কাতীতভাবে আপনি একটি ফ্লোটকে মোটেও গোল করতে পারেন) - আপনি 0.0500 বা 0.0500000000001 এর মতো কিছু পাবেন। দেখুন floating-point-gui.de
jmc

2
@ হ্যাংক্র্যাকর্ডস আপনি যা বলেছেন তা সত্য নয়। আমার কাছে যদি '43 .01 'থাকে এবং আমি পার্সফ্লোয়েট করি তবে আমি' 43 .10 'থাকলে আমি 43.01 পাই তবে আমি 43.1 পেতে পারি: ডি আমি যা চাই তা নয়।
লুসিয়ান তারনা



14

আমি কীভাবে এই প্রশ্নটি পেয়েছি জানি না, তবে এটি জিজ্ঞাসা করার অনেক বছর পরেও, আমি অনুসরণ করি এমন একটি দ্রুত এবং সহজ পদ্ধতি যুক্ত করতে চাই এবং এটি কখনই আমাকে হতাশ করে নি:

var num = response_from_a_function_or_something();

var fixedNum = parseFloat(num).toFixed( 2 );

1
কেন parseFloat()সেখানে? সংখ্যাটি যদি কোনও স্ট্রিং থেকে আসে তবে এটি ব্যবহার করা উচিত।
অ্যালেক্স

3
কিছু ক্ষেত্রে যখন আমি একটি উপাদান থেকে জেকোরির সাথে কিছু "ডেটা-" বৈশিষ্ট্যযুক্ত মান পাই, আমি যদি কেবলমাত্র ফিক্সড ব্যবহার করি তবে এটি একটি ত্রুটি তৈরি করে। পার্সফ্লোট এটি ঠিক করে দেয়।
প্যানোস

2
হ্যাঁ এটাই আমি বোঝাতে চাইছি যদি এটি কোনও স্ট্রিং থেকে আসে । তবে এটি সর্বদা ব্যবহার করা খারাপ পরামর্শ।
অ্যালেক্স


8

number.parseFloat(2) কাজ করে তবে এটি একটি স্ট্রিং দেয়।

আপনি যদি এটি একটি সংখ্যা প্রকার হিসাবে সংরক্ষণ করতে চান তবে আপনি ব্যবহার করতে পারেন:

Math.round(number * 100) / 100


4

আপনি মিশ্রণের চেষ্টা করতে পারেন Number()এবং toFixed()

আপনার টার্গেট নম্বরটি এক্স ডিজিটের সাথে একটি দুর্দান্ত স্ট্রিংয়ে রূপান্তরিত করুন তারপরে ফরমেটেড স্ট্রিংটিকে একটি সংখ্যায় রূপান্তর করুন।

Number( (myVar).toFixed(2) )


নীচে উদাহরণ দেখুন:

var myNumber = 5.01;
var multiplier = 5;
$('#actionButton').on('click', function() {
  $('#message').text( myNumber * multiplier );
});

$('#actionButton2').on('click', function() {
  $('#message').text( Number( (myNumber * multiplier).toFixed(2) ) );
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<button id="actionButton">Weird numbers</button>
<button id="actionButton2">Nice numbers</button>

<div id="message"></div>


আপনার জন্য ভাল রেফারেন্স ধন্যবাদ।
আরমান এইচ

1

toFixed()পদ্ধতি একটি সংখ্যা নির্দিষ্ট বিন্দু স্বরলিপি ব্যবহার বিন্যাস করা হয়।

এবং এখানে বাক্য গঠন আছে

numObj.toFixed([digits])

অঙ্কগুলির আর্গুমেন্টটি al চ্ছিক এবং ডিফল্টরূপে 0 হয় And তবে আপনি এটি ব্যবহার করে সংখ্যায় রূপান্তর করতে পারেন

numObj.toFixed([digits]) * 1

এটি ব্যতিক্রমগুলিও ছুড়ে দিতে পারে যেমন TypeError,RangeError

ব্রাউজারে এখানে পুরো বিশদ এবং সামঞ্জস্য।



-1

আমি এই ফাংশন করেছি। এটি সূক্ষ্ম কাজ করে তবে স্ট্রিংটি দেয়।

function show_float_val(val,upto = 2){
  var val = parseFloat(val);
  return val.toFixed(upto);
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.