› פורומים › אפיון ופיתוח פריוריטי › דיוק עשרוני בחישובים
- This topic has 17 תגובות, 4 משתתפים, and was last updated לפני 13 שנים, 7 חודשים by roni.
- Post
-
- ינואר 1, 2011 בשעה 11:05 pm
היי
איך אני קובע את רמת העיגול בהכפלה ?
אני מחשב ערך ורוצה לעגל אותו לשתי ספרות אחרי הנקודה ואז לכפול את הערך המעוגל במספר אחר.
לדוגמה
מחיר ליחידה 100.81*0.37=37.2997
אני רוצה לכפול 37.3 בכמות.
אחרת
מחיר לא מעוגל כפול כמות 20
37.2997*20=745.994
כאשר אני מציג את התוצאה בעיגול ל2 ספרות המחיר ליחידה המוצג הוא 37.30
והסה"כ 745.99הבעיה ש 20*37.30= 746.00
תודה
רוני
- Replies
-
- ינואר 5, 2011 בשעה 3:21 am
תכפיל ב 10, תעגל כלפי מעלה ותחלק ב 10.
הייתי כותב איזה טריגר ב FUNC בשביל ועושה אליו INCLUDE בשביל לקבל קוד נקי ומסודרעיגול כלפי מעלה(שים לב- התוצאה היא INT):
:ciel_val = (ROUND(0.0 + :dec_val) >= :dec_val ?
ROUND(0.0 + :dec_val) : ROUND(0.0 + :dec_val) + 1)
- מרץ 7, 2011 בשעה 9:39 am
היי
אני לא רוצה לעגל כלפי מעלה. אני רוצה לקבל את המספר לאחר העיגול כפי שמוצג בחשבונית ואותו לכפול בכמות.לדוגמה מחיר ליחידה לאחר 61% הנחה
SELECT 73.05 * 0.39 FROM DUMMY
FORMAT ;
נותן תוצאה של 28.48950000000 אשר מוצגת כ 28.49 ( שדה אפיון הצגה =2 )לאחר מכן אני מכפיל את המחיר בכמות 11
חישוב במחשבון של 28.49*11 נותן ערך של 313.39.
ניסיתי לפתור עם שימוש ב ROUND אבל זה לא הועיל
SELECT ( ROUND (73.05 * 0.39 *100.0) ) /100.0 *11.0 FROM DUMMY
FORMAT ;
הערך שמתקבל הוא 313.3899999999
אשר משום מה מוצג בדוח כ313.38
תודה
רוני- מרץ 8, 2011 בשעה 3:56 pm
הי
לא כתבתי לך איך מעגלים כלפי מעלה. אלא איך מקבלים דיוק לפי ספרות אחרי הנקודה.
האם השתמשת בקוד ששלחתי לך ?- מרץ 13, 2011 בשעה 8:29 pm
היי ליאור
השתמשתי וזה לא מעגל
הקוד הרצב נותן את התוצאה אבל יש בעיה עם REALQUANT
תודה
רוני
dec_val = 73.05 * 0.39 *100.0 ;
SELECT :dec_val FROM DUMMY FORMAT ;
SELECT REALQUANT(ROUND(0.0 + :dec_val))*10.0 FROM DUMMY FORMAT ;- מרץ 13, 2011 בשעה 9:40 pm
הי רוני
אתה לא מפעיל את REALQUANT נכון.
REALQUANT מקבלת INT ולא REAL. ברוב המערכות היא מחלקת את המספר ב 1000. לכן או שתמיר ל INT את dec_val באמצעות ROUND או שפשוט תחלק ב 1000- מרץ 13, 2011 בשעה 9:41 pm
סליחה. לא שמתי לב ל ROUND
מה הבעיה עם ה REALQUANT ?תשים ב DEC_VAL את הערך המקורי
תפעיל את הקוד
התוצאה ב CIEL_VAL- מרץ 14, 2011 בשעה 6:16 pm
היי
הצבתי את הערכים בנוסחה שנתת אבל לא קבלתי את הערך הרצוי של 28.49
תודה
רוני- מרץ 20, 2011 בשעה 8:35 am
הקוד שעובד רצב בקובץ טקסט
ניתן להרצה בWINDBI
בקוד שרשמת לא הצלחתי להגיע לתוצאה
תודה
רוני [file name=code.txt size=291]https://www.priority-forums.com/he/images/fbfiles/files/code.txt[/file]- אפריל 4, 2011 בשעה 7:14 am
שלום ליאור
ניתקלתי בבעיה חדשה. כאשר יש אחוז הנחה לשורה התוצאה משתבשת
כמות 10
מחיר ליחידה 303.0
הנחה לשורה 9.0
הנחה כללית 63.0
התוצאה המוצגת היא 1121.20 בעוד שמחיר ליחידה הוא 112.12
תודה
רוניהקוד הוא
ROUND (INVOICEITEMS.PRICE *
(100.0 - INVOICEITEMS.PERCENT) / 100.0
* ( (100.0 - INVOICEITEMS.TOTPERCENT) /100.0)
* REALQUANT (INVOICEITEMS.TQUANT )
*100.0 ) /100.0
- אפריל 4, 2011 בשעה 11:14 pm
היי רוני,לדעתי אפשר לעשות את זה בתכנות , כלומר להגדיר את השדה המחושב שיעוגל ליחידה השלמה הקרובה בהצגה על המסך.או להגדיר את זה לכל השדות המשתתפים בחישוב.
(גם לי יש את הבעיה הזו בחישוב של משקל/אורך X מחיר , זה לא יוצא מדוייק )
- אפריל 16, 2011 בשעה 7:40 pm
כן מאוד.
איך מציגים מחיר מעוגל ל2 ספרות בעמודה מחיר ומכפילים במחיר שמוצג את הכמות ומציגים בעמודה אחרת.
יש מקרי קצה שבהם העיגול לא עובד מושלם
תודה- אפריל 26, 2011 בשעה 11:59 pm
צירפתי תמונה. החשבון נראה לי נכון. גם בדקתי במחשבון.- אפריל 30, 2011 בשעה 12:28 pm
היי
טעיתי בנתונים
רצב קוד לפי התמונה שלך
ותמונה עם תוצאות הנתונים החדשים
1) למה העיגול ליחידה הוא לא 381.28
2) העיגול של הכמות כלל לא מתעגל ( כאשר אני רושם את הערכים מהתמונה שצרפת הוא כן מתעגל )
תודה
רוני [file name=price2.txt size=456]https://www.priority-forums.com/he/images/fbfiles/files/price2.txt[/file]
- יש להתחבר למערכת על מנת להגיב.