Integer als Dezimalstelle?

compi

Level-1
Beiträge
10
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo an alle ich bin der neue! Und habe gleich einen totalen Blackout! Ich habe als in Parameter ein "Int" und versuche den gemäß Algebra zur Potenz umzuwandeln: Soll heissen aus 0 wird 0 aus 1 wir 10 aus 2 wird 100 aus 3 wird 1000 u.s.w. Also das Ergebniss von 10 hoch "Int" ? Hat jemand eine Lösung? Gruß compi
 
Wenn ich das richtig verstehe möchtest du eine Zahl z.B. 1000
in Exponentenanzeige darstellen.
Dies geht nur in der Real Darstellung 32Bit Format.
Dazu muß Int in Dint und dann in Real gewandelt werden.


Bitverbieger
 
Hallo an alle ich bin der neue! Und habe gleich einen totalen Blackout! Ich habe als in Parameter ein "Int" und versuche den gemäß Algebra zur Potenz umzuwandeln: Soll heissen aus 0 wird 0 aus 1 wir 10 aus 2 wird 100 aus 3 wird 1000 u.s.w. Also das Ergebniss von 10 hoch "Int" ? Hat jemand eine Lösung? Gruß compi

10 hoch 0 ist übrigens 1
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Antwort aber noch nicht kompetter Baustein! Noch keine Fehlerbehadelung aber die funktion ist schon gegeben! Danke an alle die geholfen haben! Leider bleibt die etwas geringe unschärfe von 5 Kommastellen aber besser geht es wohl nicht! FUNCTION FC 3 : VOID TITLE = //Es können bis zu Dinteger nach Real und anders herum gewandelt werden. // //Ret_Val: //0 = alles OK //1 = int oder Dint ist 0 dann ist real 0.0 //2 = Real ist 0.0 dann ist Dint oder int 0 AUTHOR : LP VERSION : 0.1 VAR_INPUT real_Dint : BOOL ; //1=(von real nach Dint) real_Int : BOOL ; //1=(von real nach int) Dint_real : BOOL ; //1=(von Dint nach real) int_real : BOOL ; //1=(von Int nach real) zener_potenz : INT ; //Anzahl der Dezimalstellen der Real Zahl ( nur positive Zahlen) END_VAR VAR_OUTPUT Error : BOOL ; END_VAR VAR_IN_OUT Dint_in_out : DINT ; //Integer Ganzzahl 32 bit Int_in_out : INT ; //Integer Ganzzahl 16 bit real_in_out : REAL ; //Realzahl END_VAR VAR_TEMP R_Dezimal : REAL ; zener_potenz_1 : REAL ; //Anzahl der Dezimalstellen der Real Zahl ( nur positive Zahlen) Grunzpotenz : REAL ; END_VAR BEGIN NETWORK TITLE =Alarme verarbeiten NETWORK TITLE =Dezimalstellen in 10`ner Potenzen wandeln L 1.000000e+001; LN ; L #zener_potenz; DTR ; *R ; EXP ; T #R_Dezimal; NETWORK TITLE =Fehlerbehandlung NETWORK TITLE =Real nach Dint U #real_Dint; SPB r_d; NETWORK TITLE =Real nach int U #real_Int; SPB r_i; NETWORK TITLE =Dint nach real U #Dint_real; SPB d_r; NETWORK TITLE =int nach real U #int_real; SPB i_r; NETWORK TITLE =Real nach DInt berechnen r_d: L #real_in_out; L #R_Dezimal; *R ; RND ; T #Dint_in_out; BEA ; NETWORK TITLE =Real nach Int berechnen r_i: L #real_in_out; L #R_Dezimal; *R ; RND ; T #Int_in_out; BEA ; NETWORK TITLE =DInt nach real berechnen d_r: L #Dint_in_out; DTR ; L #R_Dezimal; /R ; T #real_in_out; BEA ; NETWORK TITLE =Int nach real berechnen i_r: L #Int_in_out; DTR ; L #R_Dezimal; /R ; T #real_in_out; BEA ; END_FUNCTION Gruß compi
 
Hi Compi

Oben rechts gibt es so ein Gitter # damit kannst du sowas wie unten machen.



Der Code hier ist von Compi.
(Nicht ausgerichtet, war zu faul dazu, Umbrüche fehlen, wollte nur zeigen wie das funkt :ROFLMAO: :ROFLMAO: )

Code:
FUNCTION FC 3 :
VOID TITLE = //Es können bis zu Dinteger nach Real und anders herum gewandelt werden. // //Ret_Val: //0 = alles OK //1 = int oder Dint ist 0 dann ist real 0.0 //2 = Real ist 0.0 dann ist Dint oder int 0 AUTHOR : LP VERSION : 0.1 
VAR_INPUT real_Dint : BOOL ; //1=(von real nach Dint)
    real_Int : BOOL ; //1=(von real nach int) 
    Dint_real : BOOL ; //1=(von Dint nach real) int_real : BOOL ; //1=(von Int nach real) zener_potenz : INT ; //Anzahl der Dezimalstellen der Real Zahl ( nur positive Zahlen) END_VAR VAR_OUTPUT Error : BOOL ; END_VAR VAR_IN_OUT Dint_in_out : DINT ; //Integer Ganzzahl 32 bit Int_in_out : INT ; //Integer Ganzzahl 16 bit real_in_out : REAL ; //Realzahl END_VAR VAR_TEMP R_Dezimal : REAL ; zener_potenz_1 : REAL ; //Anzahl der Dezimalstellen der Real Zahl ( nur positive Zahlen) Grunzpotenz : REAL ; END_VAR BEGIN NETWORK TITLE =Alarme verarbeiten NETWORK TITLE =Dezimalstellen in 10`ner Potenzen wandeln L 1.000000e+001; LN ; L #zener_potenz; DTR ; *R ; EXP ; T #R_Dezimal; NETWORK TITLE =Fehlerbehandlung NETWORK TITLE =Real nach Dint U #real_Dint; SPB r_d; NETWORK TITLE =Real nach int U #real_Int; SPB r_i; NETWORK TITLE =Dint nach real U #Dint_real; SPB d_r; NETWORK TITLE =int nach real U #int_real; SPB i_r; NETWORK TITLE =Real nach DInt berechnen r_d: L #real_in_out; L #R_Dezimal; *R ; RND ; T #Dint_in_out; BEA ; NETWORK TITLE =Real nach Int berechnen r_i: L #real_in_out; L #R_Dezimal; *R ; RND ; T #Int_in_out; BEA ; NETWORK TITLE =DInt nach real berechnen d_r: L #Dint_in_out; DTR ; L #R_Dezimal; /R ; T #real_in_out; BEA ; NETWORK TITLE =Int nach real berechnen i_r: L #Int_in_out; DTR ; L #R_Dezimal; /R ; T #real_in_out; BEA ; END_FUNCTION

Ach ja, und unten rechts ist ein "Danke-Button" solltest du ihn irgenwann brauchen. :ROFLMAO:
 
Zurück
Oben