עבור לתוכן

באג ב-printf בשפת C (הדפסת Float)

Featured Replies

פורסם

בתוכנית כלשהי שלי אני יוצר מספר ממשי (Float) ומאחסן אותו במשתנה

כאשר אני שם את השורה:

printf ("\n\n%f", num);

המספר המודפס שונה קצת

במקום 47.86 למשל (שאמור להיות מודפס 47.860000) מודפס לי משהו כמו 47.859998

יש לזה פתרון?

פורסם

תנסה לכתוב במקום אחוז F

%.2f

זה אומר פורמט של מספר עם מקסימום 2 אחרי הנקודה.

פורסם
  • מחבר

אבל הבעיה שה"תוכנה" הזו שלי אמורה להתמודד עם עד 6 מספרים אחרי הנקודה

פורסם

תוכל לכתוב מה החישוב שאתה עושה שמביא לזה? אולי נוכל לחשוב על אפשרות אחרת לחשב, כדי לא לקבל את הטעות.

פורסם
  • מחבר

אין בעיה בחישוב

הוספתי בתוכנה שורה לפני ה-printf את השורה הבאה:

num=56.78; ועדיין מודפס דבר כזה

גם ב-watch על num אני רואה את הערך הנכון

פורסם

אגב, עדיף להשתמש ב-double על פני float (אלא אם אתה מנסה לחסוך בזכרון).

פורסם
  • מחבר

עברתי ל-double

וזה עובד

תודה רבה :)

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים