ASP.NET - الأرقام السالبة بين قوسين
-
03-07-2019 - |
سؤال
يعرض تطبيقي حاليًا أرقامًا سالبة كـ -1.لقد قام المستخدمون بتغيير المتطلبات (فقط للتغيير!) وسيتعين علينا الآن عرض الأرقام على أنها (1).هل يمكنني تمكين ذلك للتطبيق بأكمله، مثل تغيير web.config أو حتى CultureInfo الخاص بالتطبيق؟هل هناك أي أثر جانبي للقيام بذلك نظرًا لأن لدينا الكثير من الصفحات التي تحتوي على أدوات التحقق من الأرقام؟
شكرًا !
المحلول
وبالنسبة للعملة فمن السهل حقا:
String.Format("{0:C}", value)
وهذا سوف تستخدم المعلومات ثقافة للنظام.
لأرقام العادية يتم ربط البيانات، واستخدام كافة Glorie في عينة .
نصائح أخرى
وكنت استخدام التنسيق سلسلة. إجراء تغيير لتكوين التطبيق لتلبية متطلبات UI ثقيلة الوطأة. كتب SteveX على حول تنسيق سلسلة. كما انها متوافقة مع الترميز (ASPX) فقط بدلا من المعنيين في التعليمات البرمجية.
ومن منصبه:
String.Format(”{0:$#,##0.00;($#,##0.00);Zero}”, value);
This will output “$1,240.00″ if passed 1243.50. It will output the
same format but in parentheses if the number is negative, and will
output the string “Zero” if the number is zero.
والتي ليست بالضبط ما تريد، لكنها قريبة.
وتحقق هذا .. http://msdn.microsoft.com/en-us/library/91fwbcsb.aspx
وتحويل تمثيل سلسلة رقم في النمط المحدد لما يعادلها عشري.
هل يمكن الكتابة دائما طريقة خاصة بك ToString مخصصة () كطريقة تمديد، ولكن مثل التي ذكرتها، وذلك باستخدام CultureInfo هو على الارجح أفضل. نلقي نظرة هنا:
ولقد حصلت على الصفحة التالية مرجعية للقيام تنسيق سلسلة: HTTP: //idunno.org/archive/2004/14/01/122.aspx
وعن منتصف الطريق إلى أسفل، فإنه يعطي الجواب:
String.Format("{0:£#,##0.00;(£#,##0.00);Nothing}", value);
لإجابة السؤال الآخر الخاص بك، وأود أن لا تعديل app.config لجعلها عالمية، للأسباب المبينة في إجابات أخرى.
String.Format(”{0:f;(f);0”, -1);
هذا يعمل.
DataFormatString="{0:c0}"
- المبالغ السالبة في الأقواس
- ألف فاصل - فاصلة
- رمز $ في الأمام
هل عرض البيانات الخاصة بك في Gridview / Datagrids؟ إذا كان الأمر كذلك التنسيق يمكن تطبيقها في عمود ملزمة، شيء من هذا القبيل:
<asp:BoundField DataFormatString="{##;(##)}"/>
وهذا يعمل فقط مع الأعداد الصحيحة ولكن ...