Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 04:58

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Frage] Problem mit Rechnung ...

Discussion on [Frage] Problem mit Rechnung ... within the .NET Languages forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Dec 2012
Posts: 14
Received Thanks: 0
[Frage] Problem mit Rechnung ...

Hiho,

da ich noch relativ neu bin im C# Bereich, weis ich bei diesem Problem nicht wirklich weiter.
Ich wollte gern die EXP/h berechnen jedoch kriege ich wenn ich den Wert als decimal deklariere immer eine Fehlermeldung das der Wert zu groß dafür sei. Nutze ich jedoch float oder double kriege ich "+unendl." raus und beim int -21....,00 raus.
Code:
            Adresses addresses = new Adresses();
            int currentXP = addresses.charEXP();
            int currentTime = DateTime.Now.TimeOfDay.Minutes;
            int hour = 60;
            double getCurrentTime = currentTime / hour;
            double getNewXP = currentXP / getCurrentTime;
            float XPpHour = (float)Math.Round(getNewXP);
            return XPpHour;
Ich hoffe mir kann jemand bei diesem Problem helfen.

P.S.: Code ist nur testweise deshalb auch nur DateTime.Now.TimeOfDay.Minutes zum ausprobieren.

MfG
Cotigo
Cotigo is offline  
Old 12/13/2013, 12:21   #2

 
snow's Avatar
 
elite*gold: 724
Join Date: Mar 2011
Posts: 10,480
Received Thanks: 3,319
Code:
int currentTime = DateTime.Now.TimeOfDay.Minutes;
int hour = 60;
double getCurrentTime = currentTime / hour;
Sicher, dass da nicht 0 als Ergebnis rauskommt? Dann funktioniert die Division hier:
Code:
double getNewXP = currentXP / getCurrentTime;
nämlich nicht mehr, durch 0 teilen funktioniert normalerweise nicht.

Code:
(currentTime * 1.0) / hour
sollte funktionieren, jetzt musst du nur noch verhindern, dass die Stunde gerade frisch angefangen hat und du somit wieder durch 0 teilst.

Das ganze gehört übrigens in die , ich habe mal einen Moverequest abgeschickt.
snow is offline  
Thanks
1 User
Old 12/13/2013, 13:26   #3


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,904
Received Thanks: 25,394
Quote:
Originally Posted by snow911 View Post
Code:
int currentTime = DateTime.Now.TimeOfDay.Minutes;
int hour = 60;
double getCurrentTime = currentTime / hour;
Sicher, dass da nicht 0 als Ergebnis rauskommt? Dann funktioniert die Division hier:
Code:
double getNewXP = currentXP / getCurrentTime;
nämlich nicht mehr, durch 0 teilen funktioniert normalerweise nicht.

Code:
(currentTime * 1.0) / hour
sollte funktionieren, jetzt musst du nur noch verhindern, dass die Stunde gerade frisch angefangen hat und du somit wieder durch 0 teilst.

Das ganze gehört übrigens in die , ich habe mal einen Moverequest abgeschickt.
0 * 1.0 = 0
MrSm!th is offline  
Old 12/13/2013, 13:29   #4

 
snow's Avatar
 
elite*gold: 724
Join Date: Mar 2011
Posts: 10,480
Received Thanks: 3,319
Quote:
Originally Posted by MrSm!th View Post
0 * 1.0 = 0
Quote:
jetzt musst du nur noch verhindern, dass die Stunde gerade frisch angefangen hat und du somit wieder durch 0 teilst.
war evtl. unklar ausgedrückt aber daran habe ich schon gedacht.
snow is offline  
Thanks
1 User
Old 12/13/2013, 16:06   #5
 
elite*gold: 0
Join Date: Dec 2012
Posts: 14
Received Thanks: 0
Quote:
Originally Posted by snow911 View Post
Sicher, dass da nicht 0 als Ergebnis rauskommt? Dann funktioniert die Division hier:
Code:
double getNewXP = currentXP / getCurrentTime;
nämlich nicht mehr, durch 0 teilen funktioniert normalerweise nicht.

Code:
(currentTime * 1.0) / hour
sollte funktionieren, jetzt musst du nur noch verhindern, dass die Stunde gerade frisch angefangen hat und du somit wieder durch 0 teilst.

Das ganze gehört übrigens in die , ich habe mal einen Moverequest abgeschickt.
Ahh, daran scheints gelegen zu haben, denn nun kommen doch schon vernünftige Werte bei raus^^.
Das, dass hier nicht hingehörte wusste ich nicht bzw. war ich mir selber nicht ganz sicher ._.' Danke fürs moven

MfG
Cotigo
Cotigo is offline  
Old 12/16/2013, 17:19   #6


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,904
Received Thanks: 25,394
Noch als Hinweis, falls es dir nicht selbst klar ist:
Das Ergebnis einer Division von zwei Integer-Variablen ist selbst wieder ein Integer. Das heißt, dass 0 herauskommt, wenn das Ergebnis kleiner als 1 wäre.
Damit das Ergebnis eine Gleitkommazahl (z.B. float) wird, muss mindestens einer der Operanden von diesem Typ sein. Deshalb funktioniert es, 1.0 damit zu multiplizieren. Alternativ könntest du auch einen der Operanden casten.

Übrigens funktioniert dein Ansatz nicht. Um die EXP-Rate zu errechnen, brauchst du logischerweise eine Start- und eine Endzeit und teilst durch die Differenz. Dann ergibt sich auch das Problem mit dem durch 0 Teilen nicht, wenn du die Messintervalle fest definierst (z.B. durch einen Timer).
MrSm!th is offline  
Old 12/16/2013, 19:25   #7
 
elite*gold: 0
Join Date: Dec 2012
Posts: 14
Received Thanks: 0
Quote:
Originally Posted by MrSm!th View Post
Übrigens funktioniert dein Ansatz nicht. Um die EXP-Rate zu errechnen, brauchst du logischerweise eine Start- und eine Endzeit und teilst durch die Differenz. Dann ergibt sich auch das Problem mit dem durch 0 Teilen nicht, wenn du die Messintervalle fest definierst (z.B. durch einen Timer).
Einen Start und Endtimer gibt es ja, das was in meinem 1. Post war, war nur ein Pseudo-Code um überhaupt etwas zu errechnen. Hätte da natürlich auch bei int currentTime = DateTime.Now.TimeOfDay.Minutes; irgendeine Zahl eingeben können die in dem Bereich (0 - 60) existiert.
Cotigo is offline  
Reply


Similar Threads Similar Threads
Frage Neckermann - Rechnung ? Wie funkt. das ?
07/31/2011 - Main - 6 Replies
Hallo Epvp. Ich hab ne Frage wie Funkt Rechnung bei Neckeman und wie zahlt man den versand nach 14 tagen mit der rechnung oder sofort wenn die ware kommt. Danke
Frage Neckermann - Rechnung ? Wie funkt. das ?
07/30/2011 - Main - 0 Replies
Hallo Epvp. Ich hab ne Frage wie Funkt Rechnung bei Neckeman und wie zahlt man den versand nach 14 tagen mit der rechnung oder sofort wenn die ware kommt. Danke
[Frage] zu auslesen, rechnung,einlesen
01/02/2011 - AutoIt - 6 Replies
Hallo, Ich häte auch mal wieder ne frage und zwar, Hab ich in meinem Haupfenster ein Label stehen in der ein Virtueller Geld betrag steht. Als include hab ich nun ein 2. gui fenster, das sich per button öffnet, auf dem gui ist ein Button, wenn ich auf den klicke soll ein gewisser betrag von dem virtuellen geld das in label1 steht abgezogen werden Bsp. #include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3>
Frage zur Rechnung
02/23/2010 - Metin2 - 7 Replies
Hallo, ich habe ein wenig mit dem clienten von metin2 de gepspielt und mir auch die skilldesc.txt angeschaut. Da steht auch wie man die eizelnen fertigkeitswerte ausrechnet. zb steht da für hdd: (iq*0.3+5)*(2*k+0.5)/(k+1.5) oder für Drachengebrüll: 70 + 3*lv + (22*iq+13*minmwep+100)*ar*k 70 + 3*lv + (22*iq+13*maxmwep+100)*ar*k wofür stehn die variablen? denke iq steht für int und lv für level und minmwep für minimaler maw und maxmwep für maximaler maw. aber wofür steht k oder ar? ...



All times are GMT +2. The time now is 04:58.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.