הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   בעיה בחישוב התוצאות לסקר (https://hosts.co.il/forums/showthread.php?t=46584)

X-T 31-05-07 14:34

בעיה בחישוב התוצאות לסקר
 
שלום, אני בשלב הסופי של הצגת הנתונים של הסקר, נשאר לי להציג את התוצאות באחוזים, ואני רוצה להציג בצורה כזה:
15.2%

אז עשיתי
PHP קוד:

$op1x $vote1 $avg 100;  
$op2x $vote2 $avg 100;  
$op3x $vote3 $avg 100;  
$op4x $vote4 $avg 100
$op1x substr($op1x04);
$op2x substr($op2x04);
$op3x substr($op3x04);
$op4x substr($op4x04); 

וזה בכל מצב מוציא או יותר או פחות במאה בכמה מספר עשרוניים...
באיזו דרך אפשר לעשות זאת?

The Crow 31-05-07 14:46

תנסה להשתמש ב round או ceil

http://il.php.net/round
http://il.php.net/ceil

X-T 31-05-07 14:52

השימוש עם 2 הפונקציות הציג לי תוצאות זהות ותשובות שגויות...
http://img53.imageshack.us/img53/429...5131501wp8.jpg

חישוב מהיר: 65+15+15+6=101

Derey22 31-05-07 15:23

אם זכור לי טוב ככה זה אחוזים:
PHP קוד:

$avg*$vote1 /100 


X-T 31-05-07 15:40

ציטוט:

נכתב במקור על ידי Derey22 (פרסם 489453)
אם זכור לי טוב ככה זה אחוזים:
PHP קוד:

$avg*$vote1 /100 


זה אותו דבר =\

בניה 31-05-07 16:44

תעשה floor() לכולם.

X-T 31-05-07 17:11

גם לא טוב.
האם אתם מצפים לפתיחה?
כן
63%
לא
14%
הא?
16%
סתם משעמם
5%
סה"כ הצבעות: 55

חישוב מהיר: 63+14+16+5=98

דרך אגב, זה יוצר בעיה כאשר לאפשרות כלשהי יש 0 הצבעות

Warning: Division by zero

Derey22 31-05-07 17:40

קח 3 תוצאות ותחסר אותם מה100

Eran-s 31-05-07 17:43

PHP קוד:

round($x1); 

בשביל שלא תינתן שגיאה של חילוק באפס אתה צריך לבדוק אם מספר ההצבעות אינו אפס לפני ביצוע החילוק והכפל

X-T 31-05-07 18:38

לא ממש מסתדר, יש לך רעיון איך לעזור לי?
הקוד שלי הוא כזה
PHP קוד:

$op1 $vote1 $avg 100 +10;  
$op2 $vote2 $avg 100 +10;  
$op3 $vote3 $avg 100 +10;  
$op4 $vote4 $avg 100 +10

$op1x $vote1 $avg 100;  
$op2x $vote2 $avg 100;  
$op3x $vote3 $avg 100;  
$op4x $vote4 $avg 100
$op1x round($op1x1);
$op2x round($op2x1);
$op3x round($op3x1);
$op4x round($op4x1); 

ניסיתי מספר דרכים ולא הלך לי

mlnn 31-05-07 18:45

כמו שאמרו, תשתמש בfloor ב3 תוצאות ובשביל הרביעית תסחר את 3 התוצאות הראשונות מ100...

X-T 31-05-07 19:13

בשביל מה? הסתדר לי עם ה round בסופו של דבר, עכשיו אני עם בעיה בסקרים חדשים שנוצרים עם החילוק ב 0

Udi 31-05-07 19:18

תעשה מה שערן אמר לך,
תבדוק אם לאפשרות 0 מצביעים, במידה וכן - אל תחלק.

X-T 31-05-07 19:24

mlnn עזר לי למצוא פיתרון אחר
להוסיף error_reports(0); בראש העמוד.

Udi 31-05-07 19:34

לברוח מהבעיה במקום לפתור אותה?

אני מניח שאחוזי הסקר עדיין לא שווים ל100 אחוז בסכומם.

DorWD 31-05-07 19:34

אתה סתם פשוט מסתיר את השגיאות, מה זה עוזר? :\

X-T 31-05-07 19:35

ציטוט:

נכתב במקור על ידי Udi (פרסם 489682)
לברוח מהבעיה במקום לפתור אותה?

אני מניח שאחוזי הסקר עדיין לא שווים ל100 אחוז בסכומם.

מעונין להתערב?

BlueNosE 31-05-07 20:42

נסה ללמוד דבר או שניים מהסקריפט של איתן באתר php.eitan.ac.il.
יש שמה סקריפט שכתוב בצורה הכי יעילה, לדעתי..

X-T 01-06-07 06:41

ציטוט:

נכתב במקור על ידי BlueNosE (פרסם 489731)
נסה ללמוד דבר או שניים מהסקריפט של איתן באתר php.eitan.ac.il.
יש שמה סקריפט שכתוב בצורה הכי יעילה, לדעתי..

אעבור על הקוד שלו, תודה.

Eran-s 01-06-07 11:59

ציטוט:

נכתב במקור על ידי Udi (פרסם 489682)
לברוח מהבעיה במקום לפתור אותה?

בדיוק, הסתרת השגיאות מראה על אי רצינות.
מה הבעיה לרשום לדוגמא
PHP קוד:

$op1x = (!$avg) ? ($vote1 $avg 100) : 0



כל הזמנים הם GMT +2. הזמן כעת הוא 12:49.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ