J.Z. Programování Mosaic 7. 7. 2022 7:40 7. 7. 2022 10:55

dobry den,

je mozne pri pouziti real_to_string formatovat vystup s ',' a nie s '.' ? skusal som 5,2f ale to neberie.

dakujem za info.

Odpovědi 1

Luboš Urban 7. 7. 2022 10:55

Dobrý den,

uvnitř funkce z knihovny je ukrytá céčková funkce sprintf, která pracuje s desetinnou tečkou. Řešením je po převodu prohnat výstup z konverzní funkce ještě funkcí, která nahradí desetinnou tečku desetinnou čárkou.

FUNCTION REAL_TO_STRING_CZ : STRING[80]
  VAR_INPUT
    in : REAL;
  END_VAR
  VAR
    pos   : INT;
    str   : STRING;
  END_VAR

  REAL_TO_STRING_CZ := '';
  str := REAL_TO_STRINGF(in := in, format := '%.1f');
  pos := FIND( IN1 := str, IN2 := '.');
  IF pos > 0 THEN
    REAL_TO_STRING_CZ := REPLACE(IN1 := str, IN2 := ',', L := 1, P := pos);
  END_IF;
END_FUNCTION

Vaše odpověď

Pro vložení odpovědi je nezbytné být přihlášený. Pokračujte na přihlášení.