› פורומים › אפיון ופיתוח פריוריטי › הכפלה של INT
- This topic has 5 תגובות, 4 משתתפים, and was last updated לפני 15 שנים, 3 חודשים by yitzchok.
- Post
- Replies
-
- יולי 13, 2009 בשעה 7:17 pm
העמודה הזו היא INT עם דיוק עשרוני של 3. זה טיפוס מיוחד שמשמש את כל עמודות הכמות בטבלאות השונות. התכונה הייחודית שלו היא שאתה רואה במסך X ובטבלה 1000X.
למה בנו את זה כך ? הסברה שלי היא שבעבר רצו לשמור בבסיס הנתונים מספר שלם ולא עשרוני כדי לחסוך במשאבי זכרון ועיבוד (כי ייצוג בינארי של מספרים עשרוניים הוא כפול מהייצוג של שלמים). אבל זו רק סברה פרטית שלי.
על כל פנים, כדי לקבל את הערך האמיתי אתה צריך להשתמש בפונקציה REALQUANT כך:
[code:1]REALQUANT(INVOICEITEMS.TQUANT)[/code:1]
היא תמיר לך את זה לREAL ותחלק ב 1000.מדוע לא לחלק ב 1000 וזהו ? מכיון שהדיוק העשרוני של מספרים אלו הוא נתון לשינוי. אתה יכול להעביר את המערכת כולה לעבור לדיוק 2 או 1 ואז בבסיס הנתונים יירשם 100X או 10X. והחילוק ב 1000 לא יהיה נכון וזה באג. כמו כן, אני מעריך שמתישהוא בעתיד הטיפוס הזה יוחלף בREAL ו-REALQUANT תבצע הכפלה ב 1 כי היום החסכון הנ"ל אינו רלוונטי יותר. אם תחלק ב 1000 והשינוי הזה אכן יבוצע במסגרת אחת הגרסאות, אתה גם כן תקבל באג.
אם אתה מציג את העמודה ממש (ולא בביטוי) אתה מקבל אותה כבר מומרת, ייתכן שזה ההבדל בין הדוחות ?
- יולי 14, 2009 בשעה 6:45 pm
אם העמודה בה נמצאת הביטוי היא מוגדרת כ-INT, מספיק להגדיר דיוק עשרוני של 3 (ב"אפיון הצגה") וזהו.[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- יולי 15, 2009 בשעה 5:15 pm
יש גם קבוע מערכת DECIMAL המגדיר אופן עבודה של פונקציות REALQUANT ו-INTQUANT.
למשל, במקרא סטנדרטי, כשערך DECIMAL=3, מקבלים
[code:1]REALQUANT(1000) = 1.0[/code:1]
וכשערך DECIMAL=1 :
[code:1]REALQUANT(1000) = 100.0[/code:1]- יולי 16, 2009 בשעה 12:54 am
נכון. אבל לא ניתן לשנותו ידנית. יש תוכניות שלוקחת לא מעט זמן שצריך להוריד מאתר אשבל כדי לעבור מדיוק אחד לשני- יולי 16, 2009 בשעה 7:12 pm
Lior כתב:נכון. אבל לא ניתן לשנותו ידנית. יש תוכניות שלוקחת לא מעט זמן שצריך להוריד מאתר אשבל כדי לעבור מדיוק אחד לשני
ליאור – למה הגבת?
אני כתבתי:
אם העמודה בה נמצאת הביטוי היא מוגדרת כ-INT, מספיק להגדיר דיוק עשרוני של 3 (ב"אפיון הצגה") וזהו.
אפיון הצגה מתקן את גודל המספר (כאילו מחלק ב1000) אבל מציג עם 3 ספרות לאחר הנקודה. מי שרוצה לראות מספר שלם (ללא ספרות לאחר הנקודה) יצטרך להמיר את המספר ע"י INTQUANT, REALQUANT ,ROUND וכו' אני לא זוכר את הפרטים בעל פה.
משה – הספקנו לענות על השאלה שלך?
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
- יש להתחבר למערכת על מנת להגיב.