Skip to content

API CSng es

Codex edited this page Sep 23, 2026 · 1 revision

CSng

ClassicUO / Basic IDE

Home · API · Basic

Lee un ajuste numérico para cálculos, por ejemplo una demora en segundos.

Sintaxis exacta

CSng(value:Any) -> Decimal

Parámetros

  • value — Un Integer/Decimal o String numérico obligatorio, con punto y exponente opcional independientemente del idioma. "0x0EED" no es texto numérico aquí. Texto inválido, Array, Object y Unit pasan a 0. Comprueba la entrada con IsNumeric.

Devuelve

Decimal almacenado como double de 64 bits. CDbl y CSng tienen la misma precisión; CSng no reduce a Single de 32 bits. Una entrada inválida da 0, por lo que cero no demuestra que se haya convertido correctamente. Puede devolver NaN e Infinity; compruebe los límites aparte.

Comportamiento

  • Un Integer/Decimal o String numérico obligatorio, con punto y exponente opcional independientemente del idioma. "0x0EED" no es texto numérico aquí. Texto inválido, Array, Object y Unit pasan a 0. Comprueba la entrada con IsNumeric.
  • Decimal almacenado como double de 64 bits. CDbl y CSng tienen la misma precisión; CSng no reduce a Single de 32 bits. Una entrada inválida da 0, por lo que cero no demuestra que se haya convertido correctamente. Puede devolver NaN e Infinity; compruebe los límites aparte.

Funciones internas: de la llamada al resultado

Lee un ajuste numérico para cálculos, por ejemplo una demora en segundos.

1. BasicDouble

Un Integer/Decimal o String numérico obligatorio, con punto y exponente opcional independientemente del idioma. "0x0EED" no es texto numérico aquí. Texto inválido, Array, Object y Unit pasan a 0. Comprueba la entrada con IsNumeric.

Decimal almacenado como double de 64 bits. CDbl y CSng tienen la misma precisión; CSng no reduce a Single de 32 bits. Una entrada inválida da 0, por lo que cero no demuestra que se haya convertido correctamente. Puede devolver NaN e Infinity; compruebe los límites aparte.

Código del proyecto: external/InjectionScript/src/InjectionScript/Runtime/InjectionApi.cs; función BasicDouble.

Ejemplos

CSng — 1

# CSng1
#
# Lee un ajuste numérico para cálculos, por ejemplo una demora en segundos.
#
# Decimal almacenado como double de 64 bits. CDbl y CSng tienen la misma precisión; CSng no
# reduce a Single de 32 bits. Una entrada inválida da 0, por lo que cero no demuestra que se
# haya convertido correctamente. Puede devolver NaN e Infinity; compruebe los límites aparte.

SUB Main()
    # value="0.35" usa un punto decimal. Main devuelve Decimal 0.35 segundos sin esperar.

    RETURN CSng("0.35")
END SUB

Explicación de los parámetros y la ejecución:

  • value="0.35" usa un punto decimal. Main devuelve Decimal 0.35 segundos sin esperar.

CSng — 2

# CSng2
#
# Lee un ajuste numérico para cálculos, por ejemplo una demora en segundos.
#
# Decimal almacenado como double de 64 bits. CDbl y CSng tienen la misma precisión; CSng no
# reduce a Single de 32 bits. Una entrada inválida da 0, por lo que cero no demuestra que se
# haya convertido correctamente. Puede devolver NaN e Infinity; compruebe los límites aparte.

SUB Main()
    # value="3e1" representa 30; dividido por 4 da Decimal 7.5. La notación exponencial no depende
    # del idioma.

    VAR total = CSng("3e1")
    RETURN total / 4
END SUB

Explicación de los parámetros y la ejecución:

  • value="3e1" representa 30; dividido por 4 da Decimal 7.5. La notación exponencial no depende del idioma.

CSng — 3

# CSng3
#
# Lee un ajuste numérico para cálculos, por ejemplo una demora en segundos.
#
# Decimal almacenado como double de 64 bits. CDbl y CSng tienen la misma precisión; CSng no
# reduce a Single de 32 bits. Una entrada inválida da 0, por lo que cero no demuestra que se
# haya convertido correctamente. Puede devolver NaN e Infinity; compruebe los límites aparte.

SUB Main()
    # Milliseconds recibe secondsText="0.35". Texto no numérico, NaN y valores fuera de 0.1..5
    # segundos dan -1. Si es válido, multiplica por 1000 y devuelve Decimal 350 para una espera
    # posterior; no llama a Wait.

    RETURN Milliseconds("0.35")
END SUB

SUB Milliseconds(secondsText)
    IF NOT IsNumeric(secondsText) THEN
        RETURN -1
    END IF
    VAR seconds = CSng(secondsText)
    IF CStr(seconds) = "NaN" OR seconds < 0.1 OR seconds > 5 THEN
        RETURN -1
    END IF
    RETURN seconds * 1000
END SUB

Explicación de los parámetros y la ejecución:

  • Milliseconds recibe secondsText="0.35". Texto no numérico, NaN y valores fuera de 0.1..5 segundos dan -1. Si es válido, multiplica por 1000 y devuelve Decimal 350 para una espera posterior; no llama a Wait.

Русский · English · Українська · Français · Deutsch · Italiano · Español · 繁體中文 · 日本語 · 한국어

Clone this wiki locally