פורסם 2005 בנובמבר 1820 שנים מישהו יודע איך אני מעגל מספר בצורה כללית?כלומר, אני מקבל נתונים, מבצע עליהם כל מיני פעולות ובסוף מקבל מספר אותו אני מדפיס עם 2 ספרות אחרי הנקודהעכשיו אם אני רושם לו בפקודת ההדפסה שידפיס 2 ספרות אחרי הנקודה הוא פשוט חותךאני רוצה שפשוט אם הספרה השלישית אחרי הנקודה קטנה מ5, אז לחתוך. גדולה או שוה ל5 אז להוסיף אחד לספרה השניה אחרי הנקודהמישהו יודע איך אני עושה את זה?תודה מראש
פורסם 2005 בנובמבר 1820 שנים אתה יכול להכפיל את המספר ב-100, להפעיל עליו את הפונקציה round ואז לחלק את התוצאה ב-100.זה אולי נראה קצת עקום, אבל זו דרך טובה לעשות את מה שביקשת.
פורסם 2005 בנובמבר 1820 שנים מחבר חשבתי על זה אבל אני לא מריץ את התוכנית במחשב אלא בשרת יוניקס של בר אילן, וששם ניסיתי לכתוב ראונד הוא אמר לי שהוא לא מבין על מה אני מדבר בכלל.האם יש אפשרות להפעיל את הפונקציה הזאת באיזשהי דרך?
פורסם 2005 בנובמבר 1820 שנים אם אתה רוצה שהוא יעגל למספר הקרוב ביותר במקום לעגל למטה, פשוט תוסיף 0.005 למספר לפני העיגול.
פורסם 2005 בנובמבר 1820 שנים ROUND היא פונקציה של C99 אם אני זוכר ולא של ANSIC.נסה להשתמש ב FLOOR במקום.
פורסם 2005 בנובמבר 1920 שנים לגבי זה אני לא יודע (ansi או לא), אבל הוא לא רוצה floor, הוא רוצה round...בכל אופן, אם אתה משתמש ב-GCC במקרה, אתה צריך להכליל את ספריית MATH, כלומר בקימפול לכתוב:gcc test.c -lmathואני לא זוכר אם צריך להוסיף גם include math.h...אגב מצאתי פונקציה דומה בשם rint שלא הבנתי מה ההבדל בינה לבין round.
פורסם 2005 בנובמבר 2020 שנים לגבי זה אני לא יודע (ansi או לא), אבל הוא לא רוצה floor, הוא רוצה round...אז שיוסיף למספר 0.5 ויעשה עליו floorאו לחילופין לחסר 0.5 ולעשות ceil
פורסם 2005 בנובמבר 2020 שנים אפשר גם לבנות פונקציה כזו:int round(double x){ int temp=x; if(x-temp<1-(x-temp)) return temp; else return x+(1-(x-temp));}
פורסם 2005 בנובמבר 2020 שנים orlupo, לעשות המרה ככה מ DOUBLE ל INT ממש לא חכם...אודה לך אם תלמד אותי דרך שונה.אם כבר אז תחזיר 1+TEMP ולא כל מה שרשמת שם למטה..אם כבר temp++.
פורסם 2005 בנובמבר 2020 שנים להשתמש בכל שיטה שנאמרה לפני כן (FLOOR/CEIL עם הוספה, או ROUND).CASTING פשוט חותך את ה DOUBLE אחרי הנקודה, ויש מקרים של חוסר דיוק (שהם תלויים מעבד וקומפיילר למשל), שה CASTING יתן לך את המספק הלא נכון כתשובה. (למשל תעשה לוג 1000 חלקי לוג 10 שזה אמור להיות 3 ואם תעשה CASTING ל INT, בחלק מהמחשבים/קומפיילרים תקבל 2, ובחלק 3).
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.