split für Ganzzahl vor und nach Komma?
Moderator: Co-Administratoren
-
- Beiträge: 9677
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 700 Mal
- Danksagung erhalten: 1625 Mal
Re: split für Ganzzahl vor und nach Komma?
Code: Alles auswählen
Var Zahl = 3.5;
Integer a = Floor(Zahl) ;
Integer b = ((Zahl - a) * 10);
b = Floor(b) ; ! Nur für den Fall das Du mehr als 1 Nachkommastellen hast...
Zuletzt geändert von MichaelN am 19.10.2021, 14:48, insgesamt 1-mal geändert.
LG, Michael.
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
-
- Beiträge: 550
- Registriert: 17.04.2021, 17:12
- System: CCU
- Hat sich bedankt: 27 Mal
- Danksagung erhalten: 125 Mal
Re: split für Ganzzahl vor und nach Komma?
z.B. so
Gruß
Harry
Code: Alles auswählen
var kommazahl = "3,5";
integer vorkomma = kommazahl.StrValueByIndex(",", 0);
integer nachkomma = kommazahl.StrValueByIndex(",", 1);
WriteLine(vorkomma);
WriteLine(nachkomma);
Harry
Gruß
Harry
Harry
-
- Beiträge: 2391
- Registriert: 19.09.2012, 10:53
- System: CCU
- Wohnort: Jottweedee
- Hat sich bedankt: 251 Mal
- Danksagung erhalten: 351 Mal
Re: split für Ganzzahl vor und nach Komma?
Es kann leider nicht ganz ausgeschlossen werden, dass ich mich irre.
HmIP muss leider draussen bleiben. in Ausnahmefällen erlaubt
ACHTUNG! Per Portweiterleitung aus dem Internet erreichbare CCU-WebUI ist unsicher! AUCH MIT PASSWORTSCHUTZ! Daher: Portweiterleitung deaktivieren!
HmIP muss leider draussen bleiben. in Ausnahmefällen erlaubt
ACHTUNG! Per Portweiterleitung aus dem Internet erreichbare CCU-WebUI ist unsicher! AUCH MIT PASSWORTSCHUTZ! Daher: Portweiterleitung deaktivieren!
- Roland M.
- Beiträge: 9804
- Registriert: 08.12.2012, 15:53
- System: CCU
- Wohnort: Graz, Österreich
- Hat sich bedankt: 252 Mal
- Danksagung erhalten: 1381 Mal
Re: split für Ganzzahl vor und nach Komma?
Hallo!
Wenn es nur um eine Nachkommastelle geht, dann ist das einfach:
Ausgenutzt wird hier die automatische Umwandlung der Typen während der Rechnung.
Alternativ kann man natürlich auch
verwenden.
Wenn es beliebige Nachkommastellen sein soll (3.123 -> a=3, b=123) dann müsste man etwas mehr Aufwand treiben. Und die Frage klären, wie bei die sechs Kommastellen beim Typ real behandeln soll: x = 1.234000 -> b=234 oder b=234000.
Roland
Wenn es nur um eine Nachkommastelle geht, dann ist das einfach:
Code: Alles auswählen
var x = 3.5;
var a = 0 + x;
var b = 0 + 10.0 * (x - a);
WriteLine("a = " # a);
WriteLine("b = " # b);
Alternativ kann man natürlich auch
Code: Alles auswählen
var a = x.ToInteger();
Wenn es beliebige Nachkommastellen sein soll (3.123 -> a=3, b=123) dann müsste man etwas mehr Aufwand treiben. Und die Frage klären, wie bei die sechs Kommastellen beim Typ real behandeln soll: x = 1.234000 -> b=234 oder b=234000.
Roland
Zur leichteren Hilfestellung bitte unbedingt beachten:
-----------------------------------------------------------------------
1. CCU2 mit ~100 Geräten (in Umstellung auf RaspberryMatic-OVA auf Proxmox-Server)
2. CCU2 per VPN mit ~50 Geräten (geplant: RaspberryMatic auf Charly)
3. CCU2 per VPN mit ~40 Geräten (geplant: RaspberryMatic auf CCU3)
CCU1, Test-CCU2, Raspi 1 mit kleinem Funkmodul, RaspberryMatic als VM unter Proxmox, Access Point,...
- Bezeichnung (HM-... bzw. HmIP-...) der betroffenen Geräte angeben (nicht Artikelnummer)
- Kurzbeschreibung des Soll-Zustandes (Was soll erreicht werden?)
- Kurzbeschreibung des Ist-Zustandes (Was funktioniert nicht?)
- Fehlermeldungen genau abschreiben, besser noch...
- Screenshots von Programmen, Geräteeinstellungen und Fehlermeldungen (direkt als jpg/png) einstellen!
-----------------------------------------------------------------------
1. CCU2 mit ~100 Geräten (in Umstellung auf RaspberryMatic-OVA auf Proxmox-Server)
2. CCU2 per VPN mit ~50 Geräten (geplant: RaspberryMatic auf Charly)
3. CCU2 per VPN mit ~40 Geräten (geplant: RaspberryMatic auf CCU3)
CCU1, Test-CCU2, Raspi 1 mit kleinem Funkmodul, RaspberryMatic als VM unter Proxmox, Access Point,...
- Roland M.
- Beiträge: 9804
- Registriert: 08.12.2012, 15:53
- System: CCU
- Wohnort: Graz, Österreich
- Hat sich bedankt: 252 Mal
- Danksagung erhalten: 1381 Mal
Re: split für Ganzzahl vor und nach Komma?
Hallo Harry!
Auch wenn es als integer deklariert ist, es greift die automatische Typenumwandlung.
Und das Trennzeichen ist ein Punkt und kein Komma, wenn man von einer real-Zahl ausgeht.
Roland
Wie ich die Frage gelesen habe, soll das eine Zahl sein, kein String. Also noch eine Umwandlung .ToString()
Auch hier wieder: Resultat ist keine integer-Zahl, sondern ein String.Code: Alles auswählen
integer vorkomma = kommazahl.StrValueByIndex(",", 0); integer nachkomma = kommazahl.StrValueByIndex(",", 1);
Auch wenn es als integer deklariert ist, es greift die automatische Typenumwandlung.
Und das Trennzeichen ist ein Punkt und kein Komma, wenn man von einer real-Zahl ausgeht.
Roland
Zur leichteren Hilfestellung bitte unbedingt beachten:
-----------------------------------------------------------------------
1. CCU2 mit ~100 Geräten (in Umstellung auf RaspberryMatic-OVA auf Proxmox-Server)
2. CCU2 per VPN mit ~50 Geräten (geplant: RaspberryMatic auf Charly)
3. CCU2 per VPN mit ~40 Geräten (geplant: RaspberryMatic auf CCU3)
CCU1, Test-CCU2, Raspi 1 mit kleinem Funkmodul, RaspberryMatic als VM unter Proxmox, Access Point,...
- Bezeichnung (HM-... bzw. HmIP-...) der betroffenen Geräte angeben (nicht Artikelnummer)
- Kurzbeschreibung des Soll-Zustandes (Was soll erreicht werden?)
- Kurzbeschreibung des Ist-Zustandes (Was funktioniert nicht?)
- Fehlermeldungen genau abschreiben, besser noch...
- Screenshots von Programmen, Geräteeinstellungen und Fehlermeldungen (direkt als jpg/png) einstellen!
-----------------------------------------------------------------------
1. CCU2 mit ~100 Geräten (in Umstellung auf RaspberryMatic-OVA auf Proxmox-Server)
2. CCU2 per VPN mit ~50 Geräten (geplant: RaspberryMatic auf Charly)
3. CCU2 per VPN mit ~40 Geräten (geplant: RaspberryMatic auf CCU3)
CCU1, Test-CCU2, Raspi 1 mit kleinem Funkmodul, RaspberryMatic als VM unter Proxmox, Access Point,...
-
- Beiträge: 550
- Registriert: 17.04.2021, 17:12
- System: CCU
- Hat sich bedankt: 27 Mal
- Danksagung erhalten: 125 Mal
Re: split für Ganzzahl vor und nach Komma?
@Michael
Funktioniert das so auf CCU3 etc ?
Gruß
Harry
Funktioniert das so auf CCU3 etc ?
CCU2 akzeptiert nur diese Syntax:
Code: Alles auswählen
integer a = Zahl.Floor() ;
Harry
Gruß
Harry
Harry
- Roland M.
- Beiträge: 9804
- Registriert: 08.12.2012, 15:53
- System: CCU
- Wohnort: Graz, Österreich
- Hat sich bedankt: 252 Mal
- Danksagung erhalten: 1381 Mal
Re: split für Ganzzahl vor und nach Komma?
Hallo Harry!
Raspberrymatic mag das auch nicht.
Resultat ist aber wieder eine Realzahl, kein integer.
Je nach dem, wie du das weiter verarbeiten willst...
Roland
Offensichtlich nein.
Raspberrymatic mag das auch nicht.
Jep.CCU2 akzeptiert nur diese Syntax:Code: Alles auswählen
integer a = Zahl.Floor() ;
Resultat ist aber wieder eine Realzahl, kein integer.
Je nach dem, wie du das weiter verarbeiten willst...
Roland
Zur leichteren Hilfestellung bitte unbedingt beachten:
-----------------------------------------------------------------------
1. CCU2 mit ~100 Geräten (in Umstellung auf RaspberryMatic-OVA auf Proxmox-Server)
2. CCU2 per VPN mit ~50 Geräten (geplant: RaspberryMatic auf Charly)
3. CCU2 per VPN mit ~40 Geräten (geplant: RaspberryMatic auf CCU3)
CCU1, Test-CCU2, Raspi 1 mit kleinem Funkmodul, RaspberryMatic als VM unter Proxmox, Access Point,...
- Bezeichnung (HM-... bzw. HmIP-...) der betroffenen Geräte angeben (nicht Artikelnummer)
- Kurzbeschreibung des Soll-Zustandes (Was soll erreicht werden?)
- Kurzbeschreibung des Ist-Zustandes (Was funktioniert nicht?)
- Fehlermeldungen genau abschreiben, besser noch...
- Screenshots von Programmen, Geräteeinstellungen und Fehlermeldungen (direkt als jpg/png) einstellen!
-----------------------------------------------------------------------
1. CCU2 mit ~100 Geräten (in Umstellung auf RaspberryMatic-OVA auf Proxmox-Server)
2. CCU2 per VPN mit ~50 Geräten (geplant: RaspberryMatic auf Charly)
3. CCU2 per VPN mit ~40 Geräten (geplant: RaspberryMatic auf CCU3)
CCU1, Test-CCU2, Raspi 1 mit kleinem Funkmodul, RaspberryMatic als VM unter Proxmox, Access Point,...
-
- Beiträge: 550
- Registriert: 17.04.2021, 17:12
- System: CCU
- Hat sich bedankt: 27 Mal
- Danksagung erhalten: 125 Mal
Re: split für Ganzzahl vor und nach Komma?
Hallo Roland
Kommt natürlich drauf an, wie der Eingangswert genau ist und was genau als Ergbnis erwartet wird.
Wenn ToString() für den Eingansparameter gebraucht wird,
muss das Trennzeichen für StrValueByIndex() auch auf "." Punkt geändert werden.
Wenn ich das in der Praxis verwende, kontrolliere ich das immer nch mal
Gruß
Harry
Kommt natürlich drauf an, wie der Eingangswert genau ist und was genau als Ergbnis erwartet wird.
Wenn ToString() für den Eingansparameter gebraucht wird,
muss das Trennzeichen für StrValueByIndex() auch auf "." Punkt geändert werden.
hab ich auf die Schnelle nicht mehr dran gedacht.Auch wenn es als integer deklariert ist, es greift die automatische Typenumwandlung.
Wenn ich das in der Praxis verwende, kontrolliere ich das immer nch mal
Gruß
Harry
Gruß
Harry
Harry
-
- Beiträge: 5449
- Registriert: 30.05.2019, 11:37
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Chemnitz
- Hat sich bedankt: 116 Mal
- Danksagung erhalten: 740 Mal
Re: split für Ganzzahl vor und nach Komma?
Ich würde davon ausgehen, er meint tatsächlich einen Zahlenwert und keine Zeichenkette.
Und ja, in der Scriptsprache wäre der Zahlenwert 3.5