2 שאלות

shmints

New member
2 שאלות

1. איך מדפיסים מספר double בלי ספרות מיותרות אחרי הנקודה? (ז"א רשימת מספרים כאשר אם המספר הוא 6.21 להדפיס אותו ובאותה רשימה 4.12345 להדפיס עם 5 ספרות אחרי הנקודה...)
printf ("the number is: %f", number);​
נותן מספר קבוע של ספרות וממלא את השאר אפסים, ז"א 6.21 מדפיס כ-6.2100 וכו' 2. איך ממירים double ל-string, ע"מ לכתוב אותו לקובץ. תודה
 

mooznach

New member
זעזים.

1) אם זה ++C אז פשוט משתמשים ב cout. cout עושה את זה ככה אוטומטי. אם חייבים printf אז אני לא בטוח אם יש שיטה ישירה. אם זה עוזר אפשר לקבוע את הדיוק לאחר הנקודה ככה:
printf("%.2f\n", f);​
כש ".2" אומר 2 ספרות אחרי הנקודה. 2) אפשר להשתמש ב sprintf :
char buffer[100]; sprintf(buffer, "%f\n", f);​
 

shmints

New member
מבקשת תשובות נוספות (ומסבירה)

אני לא יכולה להשתמש ב-cout אלא ב-printf וכשמגדירים כמו שאמרת - אז גם מספרים עם ספרה אחת אחרי הנקודה יוצאים כ-2 ספרות אחרי הנקודה...
sprintf יעביר בעצם לתוך ה-buffer את המספר? (בלי להציג ב-output?) תודה
 

mooznach

New member
אוקיי.

מסתבר שכל מי שצועק לי RTFM הוא לא סתם בן זונה (רק הרוב), יש לזה גם שימוש. מה manual של printf עולה שאפשר לעשות את מה שאת רוצה ככה -
double f = 1.5; printf("%g\n", f);​
וכן, sprintf יעביר לתוך הbuffer את המספר בלי להציג פלט.
 

shmints

New member
תודה

תאמין לי שחיפשתי לפני ששאלתי, רק יש בעיה טכנית שגורמת לי לעשות לעצמי הנחות.. לא ניכנס לזה
בכל אופן - תודה!
 
למעלה