x=x%100+((x<0)*100) arbeitet nicht wie zu erwarten!
x=x%100+((x<0)*100) arbeitet nicht wie zu erwarten!
Hi, warum ergibt dieser kurze Code -5 und nicht wie zu erwarten 95?
x=-5
x=x%100+((x<0)*100)
;x=-5+(1*100)
Debug x
Oder anders gefragt, warum ergibt (x<0) als Ergebnis #false?
Eine Lösung für dises Einfache Problem lässt sich hoffentlich finden!
Danke!
x=-5
x=x%100+((x<0)*100)
;x=-5+(1*100)
Debug x
Oder anders gefragt, warum ergibt (x<0) als Ergebnis #false?
Eine Lösung für dises Einfache Problem lässt sich hoffentlich finden!
Danke!
http://www.nevu.de/ Künstliche Intelligenz, die letzte Herausforderung!
- freedimension
- Admin
- Beiträge: 1987
- Registriert: 08.09.2004 13:19
- Wohnort: Ludwigsburg
- Kontaktdaten:
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
PureBasic kennt keine Boolean, siehe hier: http://forums.purebasic.com/german/view ... ht=boolean
Vergleiche nur mit If, While oder Until
Edit:
Mirko hat schneller geantwortet
Vergleiche nur mit If, While oder Until
Edit:
Mirko hat schneller geantwortet

PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Das ist ja riesengroße Scheiße!
Ist das in V4 geplant?
Ist das in V4 geplant?
http://www.nevu.de/ Künstliche Intelligenz, die letzte Herausforderung!
Wenn dus umbedingt brauchst musst du dir halte eine Funktion dafür machen.
Ich weiß ist lahm, aber für den Notfall?
Code: Alles auswählen
procedure GT(Wert1, Wert2)
if Wert1 > Wert2
procedurereturn 1
endif
procedurereturn 0 ; kann man ja mal vergessen
endprocedure
Zuletzt geändert von Batze am 13.12.2005 16:23, insgesamt 1-mal geändert.
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
So eine kleine Procedure und schon ein FehlerBatze hat geschrieben:Wenn dus umbedingt brauchst musst du dir halte eine Funktion dafür machen.Ich weiß ist lahm, aber für den Notfall?Code: Alles auswählen
procedure GT(Wert1, Wert2) if Wert1 > Wert2 procedurereturn 1 endif endprocedure

Code: Alles auswählen
Procedure GT(Wert1, Wert2)
If Wert1 > Wert2
ProcedureReturn 1
EndIf
ProcedureReturn 0
EndProcedure
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Das mit den Floats reicht doch schon. Es ist doch nirgends Dokumentiert, das eine Funktion, die nichts zurückgibt, dies 0 sein muß. Ist auch unsauberer Programmierstil.nco2k hat geschrieben:abgesehen von floats (wird hoffentlich gefixt), gehts doch immer.![]()
c ya,
nco2k

Der nächste Optimizer oder ähnlich, merkt, dies ist keine Funktion, da kein ProcedureReturn, dann werden wir den Stack auch nicht aufräumen, oder ähnliches.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

@Norbie
So erzwingst Du die Behandlung als Boolean und bekommst die 95 :
Das wird hoffentlich mit 4.0 anders!
So erzwingst Du die Behandlung als Boolean und bekommst die 95 :
Code: Alles auswählen
x=-5
x=x%100+((#False Or (x<0))*100)
;x=-5+(1*100)
Debug x
Man ist nie zu alt zum lernen, auch wenn man dabei manchmal alt aussieht!