ABA


"שאלה בסי בבקשה תעזרו !"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #11384 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 11384
Pesilion

   22:20   20.11.04   
אל הפורום  
  שאלה בסי בבקשה תעזרו !  
 
   איך ניתן לחלק מספרים בסי אפילו כשאני עושה FLOAT לא ניתן לחלק לדוגמא 1\3 מוציא לי 0 מה לעשות?! תודה


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  אפשר לעשות חילוק ''ממשי'' בעזרת קאסטניג nesher  20.11.04 22:51 1
     שלילי בהחלט ! Dudenland 22.11.04 18:17 2

       
nesher 

   22:51   20.11.04   
אל הפורום  
  1. אפשר לעשות חילוק ''ממשי'' בעזרת קאסטניג  
בתגובה להודעה מספר 0
 
   מה זאת אומר...
נגיד יש לך 2 intים שאתה רוצה לעשות חילוק ולקבל תשובה ממשית
אז אתה עושה

x=(float)(1/3);

ואז בעצם התשובה תהיה במשתנה ממשי על אף שהחילוק נעשה ע"י intים


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Dudenland

   18:17   22.11.04   
אל הפורום  
  2. שלילי בהחלט !  
בתגובה להודעה מספר 1
 
   בדוגמתך, כאילו כתבת: ((x = (float)((int)1 / (int3
הביטוי הנ"ל שקול לביטוי (x = (float)(0, כלומר x = 0.0.

בכל חישוב, הטיפוס של התוצאה יהיה מן הטיפוס הכי מסובך שמשתתף בחישוב. בדוגמה שלך שני הביטויים הם מסוג int, ולכן, התוצאה שבסוגריים תהיה גם היא int, אולם רשמת בתוך סוגריים float, ולכן, הימרת את התוצאה ב-int ל-float, ולכן במקום 0, קיבלת 0.0.

כדי לחשב נכון, אתה יכול לעשות כך:
x = 1.0 / 3 או x = (float)1 / 3
x = 1 / 3.0 או x = 1 / (float)3
x = 1.0 / 3.0 או x = (float)1 / (float)3

נראה לי שהבנת...


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net