"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية التعامل مع تنسيق العملة في Golang؟

كيفية التعامل مع تنسيق العملة في Golang؟

تم النشر بتاريخ 2024-11-08
تصفح:944

How to Handle Currency Formatting in Golang?

تنسيق العملة الصحيح في Golang

عند العمل مع تنسيق العملة، من الضروري مراعاة المتطلبات المحددة لكل مجموعة عملة ولغة. باستخدام golang.org/x/text/currency، يمكنك بسهولة تنسيق القيم بناءً على الاتفاقيات المحلية. ومع ذلك، قد تواجه بعض التحديات في الحصول على المخرجات المطلوبة.

استخدام رموز العملة

في التعليمات البرمجية الخاصة بك، يمكنك استخدام العملة.رمز لاسترداد رمز العملة لـ رمز ISO المحدد. ومع ذلك، عند استخدام هذه الطريقة دون توفير سياق لغة، قد لا تحصل على الفواصل أو تنسيق الأرقام المتوقع.

دمج التنسيقات المحلية

بدلاً من محاولة الإنشاء يدويًا التنسيق الخاص بك، يمكنك الاستفادة من حزم العرض والرسائل لاسترداد التنسيق المناسب تلقائيًا بناءً على اللغة والمنطقة. إليك مثال:

import (
    "fmt"

    "golang.org/x/text/currency"
    "golang.org/x/text/language"
    "golang.org/x/text/message"
)

func formatCurrency(value int64, currencyCode string, languageCode string) string {
    lang, _ := language.Parse(languageCode)
    p := message.NewPrinter(lang)

    unit, _ := currency.ParseISO(currencyCode)
    return p.Sprintf("%v%v", currency.Symbol(unit), float64(value))
}
تأخذ هذه الوظيفة قيمة ورمز العملة ورمز اللغة وتقوم بإرجاع سلسلة عملة منسقة بشكل صحيح.

معالجة وحدات الزيادة

بعض العملات لها وحدة زيادة ثابتة، مثل 5 أو 10 سنتات. لحساب ذلك، يمكنك استخدام حزمة الأرقام لتحديد الزيادة:

import (
    "golang.org/x/text/currency"
    "golang.org/x/text/number"
)

func formatWithIncrement(value int64, currencyCode string, increment int) string {
    unit, _ := currency.ParseISO(currencyCode)
    scale, inc := currency.Cash.Rounding(unit)
    dec := number.Decimal(float64(value), number.Scale(scale), number.IncrementString(fmt.Sprintf("%.2f", float64(inc))))
    return fmt.Sprintf("%v%v", currency.Symbol(unit), dec)
}
من خلال توفير سياق اللغة، واستنتاج تنسيق العملة من رموز اللغة، والنظر في وحدات الزيادة، يمكنك إنشاء حلول مرنة ودقيقة لتنسيق العملة في Golang باستخدام golang.org/x/text/currency.

بيان الافراج أعيد طبع هذه المقالة على: 1729688989 في حالة وجود أي انتهاك، يرجى الاتصال بـ [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3