2 দশমিক স্থানে একটি ভাসা বিন্যাস করা


210

আমি বর্তমানে একটি ক্লায়েন্টের ওয়েবসাইটের জন্য বিক্রয় মডিউল তৈরি করছি। এখন পর্যন্ত আমি নিখুঁতভাবে গণনা করার জন্য বিক্রয় মূল্য পেয়েছি কিন্তু যেখানে আমি আটকে এসেছি আউটপুটটিকে 2 দশমিক স্থানে ফর্ম্যাট করে।

আমি বর্তমানে এটি একটি ভেরিয়েবলে কল করছি যাতে আমি ফলাফলগুলিকে তালিকার সাথে সংযুক্ত করতে পারি।

Sale = float.Parse(((x.Sale_Price - (x.Sale_Price * (x.Discount_Price / 100))).ToString())),

কেউ কী আমাকে 2 দশমিক জায়গায় আউটপুট ফর্ম্যাট করবেন তা দেখাতে পারেন ?? অনেক ধন্যবাদ!


এটি পরীক্ষা করুন আমি নিশ্চিত নই তবে সম্ভবত এটি স্ট্রিং ("#। ##") কাজ করবে;
সৈয়দা

উত্তর:


467

আপনি ToStringপদ্ধতিতে ফর্ম্যাটটি পাস করতে পারেন , যেমন:

myFloatVariable.ToString("0.00"); //2dp Number

myFloatVariable.ToString("n2"); // 2dp Number

myFloatVariable.ToString("c2"); // 2dp currency

স্ট্যান্ডার্ড নম্বর ফর্ম্যাট স্ট্রিং


38
"এন 2" এবং "সি 2" হাজার বিভাজক যুক্ত করবে যখন "0.00" তা করবে না।
মার্ক কে

5
কেবলমাত্র যদি আপনি অনিশ্চিত হন (আমি ছিলাম) তবে একটি ভাসমান মান ফর্ম্যাট করার জন্য এই সমস্ত উপায় গোল করে provide
রেনিপেট

46

আপনাকে প্রথমে যে জিনিসটি করা দরকার তা হ'ল decimalদামগুলির পরিবর্তে প্রকারটি ব্যবহার করুন floatfloatএটির জন্য ব্যবহার করা একেবারেই অগ্রহণযোগ্য কারণ এটি বেশিরভাগ দশমিক ভগ্নাংশকে সঠিকভাবে উপস্থাপন করতে পারে না।

একবার এটি হয়ে গেলে, Decimal.Round()2 টি জায়গায় গোল করতে ব্যবহৃত হতে পারে।


36

String.Format("{0:#,###.##}", value)

সি # তে স্ট্রিং ফরম্যাটিংয়ের আরও জটিল উদাহরণ :

String.Format("{0:$#,##0.00;($#,##0.00);Zero}", value);

এটি যদি 1243.50 পাস করে তবে "$ 1,240.00 ″" আউটপুট দেবে। এটি একই ফর্ম্যাটটিকে আউটপুট দেবে তবে সংখ্যাটি নেতিবাচক হলে প্রথম বন্ধনীতে, এবং সংখ্যাটি শূন্য হলে "জিরো" স্ট্রিং আউটপুট দেবে।



4
string outString= number.ToString("####0.00");

1
কাস্টম ফর্ম্যাটে "0" এবং "#" এর মধ্যে বিভিন্ন রয়েছে। "0": শূন্যটি প্রতিস্থাপিত অঙ্কের সাথে প্রতিস্থাপিত হয় যদি একটি উপস্থিত থাকে; অন্যথায়, ফলাফলের স্ট্রিংয়ে শূন্য উপস্থিত হয়। "#": উপস্থিত উপস্থিত থাকলে সংশ্লিষ্ট অঙ্কের সাথে "#" চিহ্নটি প্রতিস্থাপন করে; অন্যথায়, ফলাফল স্ট্রিংয়ে কোনও অঙ্ক উপস্থিত হয় না। তথ্যসূত্র
5

3

ইতিমধ্যে উল্লিখিত হিসাবে, আপনি একটি ফর্ম্যাট ফলাফল ব্যবহার করতে হবে; যা সব মাধ্যমে সম্পন্ন করা হয় Write(), WriteLine(), Format(), এবং ToString()পদ্ধতি।

যা উল্লেখ করা হয়নি তা হ'ল ফিক্সড-পয়েন্ট ফর্ম্যাট যা নির্দিষ্ট সংখ্যক দশমিক স্থানের অনুমতি দেয়। এটি একটি 'এফ' ব্যবহার করে এবং 'এফ' এর নীচের সংখ্যাটি দশমিক স্থানের আউটপুটযুক্ত সংখ্যা, উদাহরণ হিসাবে দেখানো হয়।

Console.WriteLine("{0:F2}", 12);    // 12.00 - two decimal places
Console.WriteLine("{0:F0}", 12.3);  // 12 - ommiting fractions

2

এটি এমন কেসগুলির জন্য যা আপনি ইন্টারপোলটেড স্ট্রিং ব্যবহার করতে চান । আমি প্রকৃতপক্ষে এটি পোস্ট করছি কারণ আমি পরীক্ষার এবং ত্রুটি থেকে ক্লান্ত এবং অবশেষে যখনই আমাকে কিছু স্কেলারের ফর্ম্যাট করতে হবে তখন প্রতিবার টন ডক্সের মাধ্যমে স্ক্রোল করছি।

$"{1234.5678:0.00}"        "1234.57"        2 decimal places, notice that value is rounded
$"{1234.5678,10:0.00}"     "   1234.57"     right-aligned
$"{1234.5678,-10:0.00}"    "1234.57   "     left-aligned
$"{1234.5678:0.#####}"     "1234.5678"      5 optional digits after the decimal point
$"{1234.5678:0.00000}"     "1234.56780"     5 forced digits AFTER the decimal point, notice the trailing zero
$"{1234.5678:00000.00}"    "01234.57"       5 forced digits BEFORE the decimal point, notice the leading zero
$"{1234.5612:0}"           "1235"           as integer, notice that value is rounded
$"{1234.5678:F2}"          "1234.57"        standard fixed-point
$"{1234.5678:F5}"          "1234.56780"     5 digits after the decimal point, notice the trailing zero
$"{1234.5678:g2}"          "1.2e+03"        standard general with 2 meaningful digits, notice "e"
$"{1234.5678:G2}"          "1.2E+03"        standard general with 2 meaningful digits, notice "E"
$"{1234.5678:G3}"          "1.23E+03"       standard general with 3 meaningful digits
$"{1234.5678:G5}"          "1234.6"         standard general with 5 meaningful digits
$"{1234.5678:e2}"          "1.23e+003"      standard exponential with 2 digits after the decimal point, notice "e"
$"{1234.5678:E3}"          "1.235E+003"     standard exponential with 3 digits after the decimal point, notice "E"
$"{1234.5678:N2}"          "1,234.57"       standard numeric, notice the comma
$"{1234.5678:C2}"          "$1,234.57"      standard currency, notice the dollar sign
$"{1234.5678:P2}"          "123,456.78 %"   standard percent, notice that value is multiplied by 100
$"{1234.5678:2}"           "2"              :)

পারফরম্যান্স সতর্কতা

ইন্টারপোলটেড স্ট্রিংগুলি ধীর হয়। আমার অভিজ্ঞতায় এটি হ'ল অর্ডার (দ্রুত থেকে ধীর):

  1. value.ToString(format)+" blah blah"
  2. string.Format("{0:format} blah blah", value)
  3. $"{value:format} blah blah"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.