يمكن أن يكون تنسيق الأرقام بشكل صحيح مهمة صعبة. كما أن تنسيق العملات يجلب تحديات إضافية تتعلق بالتوطين. لحسن الحظ ، لدى Go ميزات للمساعدة.
توفر مكتبة Go القياسية أدوات متنوعة لتنسيق الأرقام. تتضمن حزمة strconv وظائف لتحليل وتحويل الأرقام من وإلى السلاسل.
حزمة strconv
ال ستركونف الحزمة هي أداة قوية للتحويل بين الأرقام والسلاسل. يمكنك استخدامه للعمل مع الأرقام بتنسيقات مختلفة.
يعد strconv جزءًا من المكتبة القياسية ، لذا فهو وثيق الصلة بالعديد من مفاهيم Go الأساسية التي يجب أن تكون على دراية بها. إليك كيفية استيراده:
يستورد"strconv"
توفر الحزمة وظائف لتحويل الأرقام من وإلى سلاسل بتنسيقات مختلفة. يتضمن وظائف للعمل مع الأعداد الصحيحة وأرقام الفاصلة العائمة.
يمكن لـ strconv أيضًا التعامل مع التحويل من وإلى التنسيقات الثنائية والثنائية والسداسية العشرية بالإضافة إلى التدوين العلمي.
تنسيق الأعداد الصحيحة في Go
حزمة strconv إيتوا توفر الوظيفة وظيفة لتحويل الأعداد الصحيحة إلى سلاسل. ال إيتوا تأخذ الدالة عددًا صحيحًا وتُرجع تمثيل السلسلة لهذا العدد الصحيح.
يستورد (
"FMT"
"strconv"
)
funcرئيسي() {
الأعداد الصحيحة: = 3043
الإصدار: = strconv. إيتوا (أعداد صحيحة)
FMT. Println (إصدار سلسلة) // الإخراج: "3043"
}
هذا الرمز يحول قيمة عددية إلى سلسلة باستخدام إيتوا. ثم تقوم بإخراج السلسلة الناتجة إلى وحدة التحكم باستخدام FMT طَرد.
بالإضافة الى إيتوا الوظيفة ، توفر strconv:
- تنسيق لتنسيق الأعداد الصحيحة كسلاسل مع أساس معين
- AppendInt لإلحاق الأعداد الصحيحة في شكل سلسلة إلى شريحة من البايت.
إليك كيف يمكنك استخدام تنسيق وظيفة لتنسيق عدد صحيح:
يستورد (
"FMT"
"strconv"
)
funcرئيسي() {
الأعداد الصحيحة: = 12345
السلاسل: = strconv. FormatInt (int64(أعداد صحيحة) ، 10)
FMT. Println (سلاسل) // الإخراج: "12345"
}
يستخدم هذا الرمز int64 () لتحويل القيمة الأصلية إلى عدد صحيح 64 بت. ثم يقوم بتمرير النتيجة إلى تنسيق، إلى جانب قاعدة التحويل ، في هذه الحالة 10. تقوم FormatInt بإرجاع السلسلة التي Println ثم نواتج إلى وحدة التحكم.
ال AppendInt تأخذ الدالة شريحة بايت ، وهو int64 قيمة وقاعدة.
يستورد (
"FMT"
"strconv"
)
funcرئيسي() {
الأعداد الصحيحة: = 12345
byteSlice: = يصنع([]بايت, 0, 20)
byteSlice = strconv. AppendInt (بايت ، شريحة ، int64(أعداد صحيحة) ، 10)
FMT. Println (خيط(بايت شريحة)) // الإخراج: "12345"
}
لاحظ أن AppendInt يتلقى شريحة بايت للإلحاق بها ، ويعيد شريحة البايت الناتجة. في هذه الحالة ، تكون شريحة البايت الأولية فارغة ، ولكن لها سعة 20 لتخزين تمثيل السلسلة الناتج للعدد الصحيح.
تحليل السلاسل كأعداد صحيحة
ال أتوي دالة تحول السلاسل إلى أعداد صحيحة. يأخذ سلسلة كمدخلات ويعيد تمثيل عدد صحيح لتلك السلسلة مع نوع الخطأ.
إليك كيف يمكنك استخدام أتوي دالة لتحويل سلسلة إلى عدد صحيح:
يستورد (
"FMT"
"strconv"
)funcرئيسي() {
السلاسل: = "123"
الأعداد الصحيحة ، يخطئ: = strconv. أتوي (سلاسل)لو يخطئ! لا شيء {
FMT. Println (يخطئ)
}
FMT. Println (أعداد صحيحة)
}
يقوم البرنامج بإخراج قيمة العدد الصحيح إلى وحدة التحكم:
يمكنك أيضًا استخدام ملف تحليل وظيفة لتحليل تمثيل سلسلة الأعداد الصحيحة غير الموقعة.
طَرد رئيسي
يستورد (
"FMT"
"strconv"
)funcرئيسي() {
// تحليل سلسلة على أنها أساس 10 و 0 بت عدد صحيح بدون إشارة
val ، يخطئ: = strconv. ParseUint ("12345", 10, 0)
لو يخطئ! لا شيء {
FMT. Println (يخطئ)
} آخر {
FMT. Println (فال) // الإخراج: 12345
}
}
ال تحليل الدالة يوزع السلسلة 12345 باعتبارها أساس عشرة ، وعدد صحيح بدون إشارة. يضمن حجم 0 بت إرجاع نوع int قياسي. تقوم بإرجاع القيمة التي تم تحليلها وخطأ.
يمكنك استخدام ال تحليل الطفو وظيفة لتحليل تمثيل سلسلة لعدد الفاصلة العائمة.
يستورد (
"FMT"
"strconv"
)funcرئيسي() {
// تحليل السلسلة كرقم فاصلة عائمة 64 بت
val ، يخطئ: = strconv. ParseFloat ("3.14", 64)
لو يخطئ! لا شيء {
FMT. Println (يخطئ)
} آخر {
FMT. Println (فال) // المخرجات: 3.14
}
}
ال تحليل الطفو دالة بتوزيع السلسلة كرقم فاصلة عائمة 64 بت وإرجاع السلسلة ونوع الخطأ.
تنسيق العملات في Go
يتطلب إنشاء تطبيق يتفاعل مع العملات تنسيق الأرقام وتحليلها. يمكن أن يمثل العمل مع عملات مختلفة تحديًا ، ولكن ستركونف و محاسبة يمكن أن تساعدك الحزم في تنسيقها.
إليك كيفية تحليل سلسلة عملة إلى تعويم للعمليات على العملة:
يستورد (
"FMT"
"strconv"
)funcرئيسي() {
// سلسلة العملة المراد تحليلها
CurrencyStr: = "$1,234.56"// إزالة رمز العملة وتحويله إلى تعويم
floatVal ، يخطئ: = strconv. ParseFloat (العملة Str [1:], 64)لو يخطئ! لا شيء {
FMT. Println (يخطئ)
يعود
}
// طباعة القيمة العائمة المحللة
FMT. Println (floatVal) // الخرج: 1234.56
}
ال العملة المتغير عبارة عن تمثيل سلسلة لقيمة العملة مع علامة الدولار كرمز. يستخدم البرنامج ملف تحليل الطفو دالة لتحليل سلسلة العملة بدءًا من العنصر الثاني (بعد رمز العملة).
تقليديًا ، من الأفضل تجنب استخدام التعويم للعملات لأنها قد تؤدي إلى أخطاء في الحسابات وأخطاء في الإنتاج.
بدلاً من ذلك ، يمكنك استخدام حزمة جهة خارجية مثل محاسبة التي لديها وظائف لتنسيق وتحليل العملات.
قم بتشغيل هذا الأمر الطرفي في دليل المشروع لتثبيت حزمة المحاسبة:
اذهب للحصول على github.com/leekchan/accounting
ابدأ بإنشاء مثيل لـ محاسبة هيكل. تذكر أن الهياكل هي واحدة من ميزات Go الأساسية الموجهة للكائنات، على غرار الفصول من اللغات الأخرى. يمكنك تهيئة مثيل محاسبة برمز عملة وقيمة دقة ، من بين خيارات أخرى.
يمكنك استخدام ال FormatMoney وظيفة الحزمة المحاسبية لتنسيق الأرقام إلى عملات.
طَرد رئيسي
يستورد (
"FMT"
"رياضيات / كبيرة""github.com/leekchan/accounting"
)
funcرئيسي() {
ac: = محاسبة. المحاسبة {الرمز: "$"، دقة: 2}
FMT. برنتلن (ac. FormatMoney (123456789.213123))
FMT. برنتلن (ac. FormatMoney (12345678))
FMT. برنتلن (ac. FormatMoney (كبيرة. NewRat (77777777, 3)))
FMT. برنتلن (ac. FormatMoney (كبيرة. NewRat (-77777777, 3)))
FMT. برنتلن (ac. FormatMoneyBigFloat (كبير. NewFloat (123456789.213123)))
}
ال أ المتغير هو مثيل المحاسبة. يقوم هذا البرنامج بتنسيق وطباعة القيم النقدية باستخدام ملف FormatMoney و FormatMoneyBigFloat طرق المثيل المحاسبي. ال NewRat وظيفة من كبير الحزمة تنشئ رقمًا منطقيًا نظرًا لبسط ومقام. ال NewFloat تساعد الدالة على تمثيل أعداد كبيرة من الفاصلة العائمة.
يمكن أن يساعدك Go في تنسيق أنواع أخرى أيضًا
يوفر Go الكثير من الوظائف لتحويل الأرقام والعملات بطريقة مباشرة.
توفر اللغة أيضًا نظامًا قويًا لتنسيق السلسلة. تتيح لك وظيفة Sprintf المستوحاة من C في حزمة fmt إنشاء سلاسل منسقة باستخدام صيغة عنصر نائب خاص. يمكنك استخدام Sprintf لبناء سلاسل تتضمن الأرقام وقيم العملات ، مما يجعل من السهل إنشاء مخرجات يمكن للبشر قراءتها.