تنسيق الأرقام العشرية في Ruby باستخدام تعبيرات القوالب
في لغة Ruby، يمكنك استخدام التعبير العادي (Regular Expression) لتحقيق هذا الهدف. يمكنك استخدام الوظيفة sub
لتبديل القيم المطلوبة. في هذه الحالة، يمكننا استخدام التالي:
rubydef replace_zeros_after_period(input_string)
input_string.sub(/(\.\d+?)0+$/, '\1')
end
هذا الكود يعمل كالتالي:
-
حل مشكلة bind: address already in use06/03/2024
-
تجاوز تحدي الضرب بالتجميع في ARM12/04/2024
-
تحميل ملف CSS في JavaFX29/03/2024
(\.\d+?)
: يتطابق مع النقطة وأي رقم عددي صحيح يليه.0+$
: يتطابق مع الأصفار (0) في نهاية السلسلة.\1
: يرمز إلى المجموعة الملتقطة(\.\d+?)
.
بهذا الشكل، يتم استخدام sub
لاستبدال أي أصفار (0) تلي النقطة في نهاية السلسلة بلاشيء.
لنقم الآن بتجربة الكود مع الأمثلة التي قدمتها:
rubyputs 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) للتعامل مع النصوص وتعديلها بشكل محدد. في هذه الحالة، يمكنك استخدام الكود التالي لتحقيق الهدف الذي تطلبه:
rubydef 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+$
الذي يبحث عن الأصفار الزائدة بعد النقطة في نهاية النص، ويقوم بتبديلها بلا شيء. يتيح لك هذا الأسلوب الحفاظ على الأرقام العشرية الصحيحة دون الأصفار الزائدة.
باستخدام هذا الكود، يمكنك تنسيق الأرقام في السلاسل المعطاة والحصول على النتائج المطلوبة كما هو موضح في الأمثلة.