أفضل طريقة لتحويل عشري قيمة العملة سلسلة العرض في HTML

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

سؤال

أريد أن تظهر أسعار المنتجات بلدي في بلدي متجر على الانترنت.أنا حاليا أقوم:

<span class="ourprice">
     <%=GetPrice().ToString("C")%>
</span>

حيث GetPrice() ترجع عشري.لذلك هذا حاليا بإرجاع قيمة مثل"£12.00"

أعتقد HTML الصحيحة لإخراج "£12.00" هو "&pound;12.00"،وذلك على الرغم من أن هذا هو التقديم على ما يرام في معظم المتصفحات, بعض المتصفحات (موزيلا) تظهر هذا 12.00 دولار.

(الخادم في المملكة المتحدة ، مع التعريب يتم تعيين بشكل مناسب في شبكة الإنترنت.التكوين).

هو دون تحسن ، أم أن هناك طريقة أفضل ؟

<span class="ourprice">
     <%=GetPrice().ToString("C").Replace("£","&pound;")%>
</span>
هل كانت مفيدة؟

المحلول

£ الرمز (U+00A3) و الكيانات html & #163;و وباوند ؛ يجب أن تجعل كل نفس في المتصفح.

إذا كان المتصفح لا تعترف جنيه استرليني, ربما لن تعترف بالكيان الإصدارات.إنه في ISO 8859-1 (اللاتينية-1) ، لذلك سأكون مندهشا إذا كان متصفح موزيلا لا يمكن أن تجعل (بلدي FF بالتأكيد).

إذا كنت ترى علامة$, فمن المحتمل لديك أمرين:1.المتصفح الافتراضي لغة en-us 2.Asp.net هو فعل تلقائي لغة التبديل.ويب الافتراضي.التكوين الإعداد هو شيء من هذا القبيل

<globalization   culture="auto:en-us"  uiCulture="auto:en-US" />

كما كنت (بالتأكيد) تريد المملكة المتحدة فقط الأسعار ، ببساطة تحديد الإعدادات المحلية في شبكة الإنترنت.التكوين:

  <globalization   culture="us"  uiCulture="en-gb" />

(أو على مستوى الصفحة:)

  <%@Page Culture="en-gb" UICulture="en-gb" ..etc... %>

بعد ذلك سلسلة صيغ مثل السلسلة.Format("{0:C}",GetPrice()) و GetPrice().ToString("ج") سيتم استخدام en-GB لغة كما asp.net سوف يكون تعيين currentCulture لك

(على الرغم من يمكنك تحديد en-gb الثقافة في الزائدة إذا كنت بجنون العظمة).

نصائح أخرى

محاولة عليك استخدام الإعدادات المحلية الخاصة بك تعيين التطبيق:

<%=String.Format("{0:C}",GetPrice())%>

استخدام

GetPrice().ToString("C", CultureInfo.CreateSpecificCulture("en-GB"))

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

المشكلة مع لغة هو أنه ملقم ويب تعتمد وليس متصفح الويب تعتمد.

إذا كنت بحاجة إلى explicity الدولة على توطين يمكنك استخدام CultureInfo وتمرير ذلك إلى سلسلة المنسق.

مجرد استخدام ToString("C2") ممتلكات قيمة عشرية.تعيين الخاص بك العولمة في شبكة الإنترنت.التكوين - الحفاظ على أنها بسيطة.

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