শতাংশ মানের জন্য দশমিক ফর্ম্যাট?


206

আমি যা চাই তা হ'ল এরকম কিছু:

String.Format("Value: {0:%%}.", 0.8526)

যেখানে %% হ'ল সেই বিন্যাস সরবরাহকারী বা আমি যা খুজছি। ফলে উচিত: Value: %85.26.

আমার মূলত এটি ডাব্লুপিএফ বাঁধনের জন্য প্রয়োজন তবে প্রথমে সাধারণ ফর্ম্যাটিং সমস্যাটি সমাধান করা যাক:

<TextBlock Text="{Binding Percent, StringFormat=%%}" />

উত্তর:


422

Pবিন্যাস স্ট্রিং ব্যবহার করুন । সংস্কৃতি অনুসারে এটি পৃথক হবে:

String.Format("Value: {0:P2}.", 0.8526) // formats as 85.26 % (varies by culture)

1
এখানে বড় পার্থক্য মার্কিন যুক্তরাষ্ট্র এবং ফ্রান্স টাইপের মত। যদি উপরের সংস্কৃতি অনুসারে পরিবর্তিত হয়, একটি সংস্কৃতি-স্বাধীন Pবিন্যাস আছে?
BonCodigo

2
@ বোনকোডিগো: আপনি যদি কোনও নির্দিষ্ট সংস্কৃতির জন্য আউটপুট চান তবে সংস্কৃতিটি স্পষ্টভাবে উল্লেখ করুন।
মাইকেল হরেন

11

সংস্কৃতি নির্ভর ফর্ম্যাটিংকে আলাদা করে রাখার এবং মান এবং "%" এর মধ্যে কোনও স্থান নেই কিনা এবং "%" নেতৃত্ব দিচ্ছে বা পিছনে চলেছে কিনা তা নিয়ে যদি আপনার কাছে স্পষ্ট নিয়ন্ত্রণ পাওয়া যায় তবে আপনি নাম্বার ফর্ম্যাটআইএনফো'র পারসেন্টপোসিটিভ প্যাটার্ন এবং ব্যবহার করতে পারেন পার্সেন্টনিজেটিভ প্যাটার্ন বৈশিষ্ট্য।

উদাহরণস্বরূপ, পিছনে "%" এবং দশমিক মান এবং "%" এর মধ্যে কোনও স্থানের সাথে দশমিক মান পেতে:

myValue.ToString("P2", new NumberFormatInfo { PercentPositivePattern = 1, PercentNegativePattern = 1 });

আরও সম্পূর্ণ উদাহরণ:

using System.Globalization; 

...

decimal myValue = -0.123m;
NumberFormatInfo percentageFormat = new NumberFormatInfo { PercentPositivePattern = 1, PercentNegativePattern = 1 };
string formattedValue = myValue.ToString("P2", percentageFormat); // "-12.30%" (in en-us)

3

আপনি যদি এমন একটি ফর্ম্যাট ব্যবহার করতে চান যা আপনাকে আপনার প্রবেশের মতো নম্বর রাখতে দেয় তবে এই ফর্ম্যাটটি আমার পক্ষে কাজ করে: "# \\%"



-8

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

String.Format("Value: {0:P2}.", 0.8526).Replace(" %","%") // formats as 85.26% (varies by culture)

এবং এখনও ভুল, আপনি যদি এই ইনপুটটিকে এতটা জোর করতে চান তবে আপনি সংখ্যাটি ফ্লোট হিসাবে রাখতে পারেন এবং শতাংশ চিহ্নটি যুক্ত করতে পারেন, যেহেতু প্রতিস্থাপন ব্যয়বহুল এবং এই ক্ষেত্রে খুব বেশি কার্যকর হয় না "স্ট্রিং.ফর্ম্যাট" ("মান: {0: F2}" । ", 0.8526 * 100)"
rekiem87
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.