البرمجة

تنسيق الأرقام العشرية في Ruby باستخدام تعبيرات القوالب

في لغة Ruby، يمكنك استخدام التعبير العادي (Regular Expression) لتحقيق هذا الهدف. يمكنك استخدام الوظيفة sub لتبديل القيم المطلوبة. في هذه الحالة، يمكننا استخدام التالي:

ruby
def replace_zeros_after_period(input_string) input_string.sub(/(\.\d+?)0+$/, '\1') end

هذا الكود يعمل كالتالي:

  1. (\.\d+?): يتطابق مع النقطة وأي رقم عددي صحيح يليه.
  2. 0+$: يتطابق مع الأصفار (0) في نهاية السلسلة.
  3. \1: يرمز إلى المجموعة الملتقطة (\.\d+?).

بهذا الشكل، يتم استخدام sub لاستبدال أي أصفار (0) تلي النقطة في نهاية السلسلة بلاشيء.

لنقم الآن بتجربة الكود مع الأمثلة التي قدمتها:

ruby
puts replace_zeros_after_period("1,2,3,4.2300") # يطبع: 1,2,3,4.23 puts replace_zeros_after_period("1,2,3,4.20300") # يطبع: 1,2,3,4.203

بهذه الطريقة، يمكنك تحقيق المطلوب في تحديد الأصفار التي تلي النقطة في السلسلة المعطاة.

المزيد من المعلومات

في سياق برمجي، إذا كنت ترغب في تحقيق هذا الغرض في لغة Ruby، يمكنك استخدام تعبيرات القوالب (Regular Expressions) للتعامل مع النصوص وتعديلها بشكل محدد. في هذه الحالة، يمكنك استخدام الكود التالي لتحقيق الهدف الذي تطلبه:

ruby
def format_number(input) # يستخدم تعبير القالب للعثور على الأصفار الزائدة بعد النقطة واستبدالها بلا شيء formatted_number = input.gsub(/(\.\d*?)0+$/, '\1') return formatted_number end # أمثلة على الاستخدام example1 = "1,2,3,4.2300" example2 = "1,2,3,4.20300" result1 = format_number(example1) result2 = format_number(example2) puts result1 # الناتج: 1,2,3,4.23 puts result2 # الناتج: 1,2,3,4.203

يعتمد هذا الكود على استخدام تعبير القالب (\.\d*?)0+$ الذي يبحث عن الأصفار الزائدة بعد النقطة في نهاية النص، ويقوم بتبديلها بلا شيء. يتيح لك هذا الأسلوب الحفاظ على الأرقام العشرية الصحيحة دون الأصفار الزائدة.

باستخدام هذا الكود، يمكنك تنسيق الأرقام في السلاسل المعطاة والحصول على النتائج المطلوبة كما هو موضح في الأمثلة.

زر الذهاب إلى الأعلى