מספר עשרוני בVBA
-
שבוע טוב.
אני מנסה לכתוב קוד שבו יכניסו שתי מספרים, לדוג' 20 ו600, והוא יחזיר חשבון של 600 פחות 20 אחוז.
בשביל זה אני צריך דבר ראשון להמיר את ה20 ל0.8 ואז להכפיל 600 ב0.8 (תוצאה של 480).
הקוד שניסיתי הוא כך:Public Function test() Dim a As Single, b As Single a = 20 b = 600 a = (100 - a) a = a \ 100 Debug.Print b * a End Function
אבל הוא מחזיר 0.
מה הבעיה כאן?
תודה! -
@ארי
שורה זו:a \ 100
צ״ל:a / 100
עריכה: מקודם לא הבנתי בכלל איך הקוד עבד, לא הכרתי את האפרטור
\
, עכשיו בדקתי מה זה האופרטור\
ואני מבין מה קרה, זה אופרטור עבור חלוקת מספרים שלמים "integer division" לכן זה מחזיר 0 עבור 0.8
https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/backslash-operator -
@ארי כתב במספר עשרוני בVBA:
@yossiz גאונות!
אתה טועה, זו לא גאונות.
זה לא איזה הוקוס פוקוס שהפיכת הלוכסן פותרת באגים,
זה פשוט שני אופרטורים שונים בVBA:
/ - הלוכסן הרגיל של החילוק ושל נתיבי קבצים בשורת הכתובת באינטרנט,
הינה חילוק רגיל. 10 / 3 = 3.3333333333333
\ - זה נקרא לוכסן הפוך, זה הלוכסן המשמש בנתיבי הקבצים בWindows, ובזה השתמש בהתחלה
הפעולה שהלכוסן הזה עושה היא חילוק שלמים, 10 \ 3 = 3. זה מאוד כיף, וכשעוברים לשפה אחרת שאין את זה אז בהתחלה עושים פרצופים חמוצים.בהצלחה.