كيف يمكنني تنسيق ضعف العملة تقريب إلى أقرب دولار؟

StackOverflow https://stackoverflow.com/questions/890100

سؤال

الآن لدي

double numba = 5212.6312
String.Format("{0:C}", Convert.ToInt32(numba) )

هذا سوف يعطيني

$5,213.00

لكنني لا أريد ".00".

أعلم أنني أستطيع فقط إسقاط الأحرف الثلاثة الأخيرة من السلسلة في كل مرة لتحقيق التأثير، ولكن يبدو أنه يجب أن يكون هناك طريقة أسهل.

هل كانت مفيدة؟

المحلول

أولا - لا تبقي العملة في double - إستخدم decimal في حين أن. كل مرة. ثم استخدم "C0" كميزات تنسيق:

decimal numba = 5212.6312M;
string s = numba.ToString("C0");

نصائح أخرى

هذا ينبغي أن يقوم بالمهمة:

String.Format("{0:C0}", Convert.ToInt32(numba))

الرقم بعد C يحدد عدد الأماكن العشرية لتضمينها.

أظن أنك تريد حقا أن تستخدم decimal اكتب لتخزين هذه الأرقام ولكن.

Console.WriteLine(numba.ToString("C0"));

أعتقد أن الطريقة الصحيحة لتحقيق هدفك هو مع هذا:

Thread.CurrentThread.CurrentCulture.NumberFormat.CurrencyDecimalDigits = 0;

وفقط بعد ذلك يجب عليك القيام باستدعاء التنسيق:

String.Format("{0:C0}", numba) 
 decimal value = 0.00M;
        value = Convert.ToDecimal(12345.12345);
        Console.WriteLine(".ToString(\"C\") Formates With Currency $ Sign");
        Console.WriteLine(value.ToString("C"));
        //OutPut : $12345.12
        Console.WriteLine(value.ToString("C1"));
        //OutPut : $12345.1
        Console.WriteLine(value.ToString("C2"));
        //OutPut : $12345.12
        Console.WriteLine(value.ToString("C3"));
        //OutPut : $12345.123
        Console.WriteLine(value.ToString("C4"));
        //OutPut : $12345.1235
        Console.WriteLine(value.ToString("C5"));
        //OutPut : $12345.12345
        Console.WriteLine(value.ToString("C6"));
        //OutPut : $12345.123450

انقر لرؤية وحدة التحكم خارج وضع الشاشة

نأمل أن يكون هذا قد تساعدك...

شكرا. :)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top