سؤال

أحاول تقسيم الأرقام الحقيقية في برنامج C باستخدام النقطة العشرية كمسؤول بحيث يقول ذلك، 1234.56 غلة

(int) falle_num = 1234 (int) الكسر = 56

أي أفكار كيف يمكنني الذهاب حول القيام بذلك؟ لقد كان loooong بينما كان قد مهرجان مع ج، انظر؟ :)

هل كانت مفيدة؟

المحلول

void split( double num, int& whole_number, double& fraction) {
    fraction = modf(num, &whole_number);
}

يعمل هذا نظرا لأن Modf يأخذ الجزء الأمثل من المزدوج وإرجاع الجزء الكسري.

نصائح أخرى

على افتراض أنك تريد تقسيم سلسلة.

strtok_r ووظيفة السلسلة المفضلة لديك مثل strtol

إذا كنت تتعامل مع رقم الفاصلة العائمة الفعلية، بدلا من تمثيل سلسلة من هذا، يجب عليك استخدام modf لتقسيم الأجزاء المتكاملة والكسرية.

بيرل split انشقاقات بواسطة Regex، لذلك لتكرار الوظائف الكاملة التي تحتاج إلى مكتبة Regex. للحصول على تقسيم السلسلة العامة، قد تكون قادرا على استخدام strtok, ، ولكن لأنه يغير السلسلة في المكان، strtok_r (الموصوفة في نفس الصفحة) يوصى به بدلا من ذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top