• 0

كيف أصيغ الأرقام الكبيرة مثل 1000 كـ "1 000" في روبي؟

أحتاج إلى طريقة لصياغة الأرقام الكبيرة مثل 1000 لتصبح 1 000، وذلك تسهيل قراءتها، فهل توجد طريقة لفعل ذلك في روبي؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

نعم توجد عدة طرق، لكن لا توجد أية تابع أو دالة مدمجة في روبي لفعل ذلك (إلا إذا استخدمت ريلز، فمكتبة ActiveSupport لديها توابع لفعل ذلك)، لذلك ستضطر إلى استخدام التعابير النمطية كما في المثال التالي:

form_n = n.to_s.reverse.gsub(/...(?=.)/,'\&,').reverse

أو يمكنك استخدام هذا التعبير النمطي إذا كنت تستخدم Activesupport:

10000000.to_s.gsub(/(\d)(?=(\d\d\d)+(?!\d))/, "\\1 ")

كما يمكنك استخدام هذه الطريقة والتي تتميز بأنها أسهل للقراءة من الطرق السابقة:

number.to_s.reverse.scan(/\d{1,3}/).join(",").reverse
 
number            #=> 98765
.to_s             #=> "98765"
.reverse          #=> "56789"
.scan(/\d{1,3}/)  #=> ["567","89"]
.join(",")        #=> "567,89"
.reverse          #=> "98,765"

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن