Skip to content

API CSng fr

Codex edited this page Sep 23, 2026 · 1 revision

CSng

ClassicUO / Basic IDE

Home · API · Basic

Lit un réglage numérique pour un calcul, par exemple un délai en secondes.

Syntaxe exacte

CSng(value:Any) -> Decimal

Paramètres

  • value — Un Integer/Decimal ou String numérique obligatoire, avec point et exposant facultatif, indépendamment de la langue. "0x0EED" n’est pas numérique ici. Texte invalide, Array, Object et Unit deviennent 0. Vérifiez la saisie avec IsNumeric.

Retour

Decimal stocké comme double 64 bits. CDbl et CSng ont la même précision ; CSng ne réduit pas à Single 32 bits. Une entrée invalide donne 0, ce qui ne prouve donc pas une conversion réussie. NaN et Infinity sont possibles : vérifiez séparément les limites.

Comportement

  • Un Integer/Decimal ou String numérique obligatoire, avec point et exposant facultatif, indépendamment de la langue. "0x0EED" n’est pas numérique ici. Texte invalide, Array, Object et Unit deviennent 0. Vérifiez la saisie avec IsNumeric.
  • Decimal stocké comme double 64 bits. CDbl et CSng ont la même précision ; CSng ne réduit pas à Single 32 bits. Une entrée invalide donne 0, ce qui ne prouve donc pas une conversion réussie. NaN et Infinity sont possibles : vérifiez séparément les limites.

Fonctions internes : de l’appel au résultat

Lit un réglage numérique pour un calcul, par exemple un délai en secondes.

1. BasicDouble

Un Integer/Decimal ou String numérique obligatoire, avec point et exposant facultatif, indépendamment de la langue. "0x0EED" n’est pas numérique ici. Texte invalide, Array, Object et Unit deviennent 0. Vérifiez la saisie avec IsNumeric.

Decimal stocké comme double 64 bits. CDbl et CSng ont la même précision ; CSng ne réduit pas à Single 32 bits. Une entrée invalide donne 0, ce qui ne prouve donc pas une conversion réussie. NaN et Infinity sont possibles : vérifiez séparément les limites.

Source du projet: external/InjectionScript/src/InjectionScript/Runtime/InjectionApi.cs; fonction BasicDouble.

Exemples

CSng — 1

# CSng — 1
#
# Lit un réglage numérique pour un calcul, par exemple un délai en secondes.
#
# Decimal stocké comme double 64 bits. CDbl et CSng ont la même précision ; CSng ne réduit pas à
# Single 32 bits. Une entrée invalide donne 0, ce qui ne prouve donc pas une conversion réussie.
# NaN et Infinity sont possibles : vérifiez séparément les limites.

SUB Main()
    # value="0.35" contient un point décimal. Main renvoie Decimal 0.35 seconde sans attendre.

    RETURN CSng("0.35")
END SUB

Explication des paramètres et du déroulement:

  • value="0.35" contient un point décimal. Main renvoie Decimal 0.35 seconde sans attendre.

CSng — 2

# CSng — 2
#
# Lit un réglage numérique pour un calcul, par exemple un délai en secondes.
#
# Decimal stocké comme double 64 bits. CDbl et CSng ont la même précision ; CSng ne réduit pas à
# Single 32 bits. Une entrée invalide donne 0, ce qui ne prouve donc pas une conversion réussie.
# NaN et Infinity sont possibles : vérifiez séparément les limites.

SUB Main()
    # value="3e1" représente 30 ; divisé par 4, le résultat Decimal est 7.5. La notation
    # exponentielle ne dépend pas de la langue.

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

Explication des paramètres et du déroulement:

  • value="3e1" représente 30 ; divisé par 4, le résultat Decimal est 7.5. La notation exponentielle ne dépend pas de la langue.

CSng — 3

# CSng — 3
#
# Lit un réglage numérique pour un calcul, par exemple un délai en secondes.
#
# Decimal stocké comme double 64 bits. CDbl et CSng ont la même précision ; CSng ne réduit pas à
# Single 32 bits. Une entrée invalide donne 0, ce qui ne prouve donc pas une conversion réussie.
# NaN et Infinity sont possibles : vérifiez séparément les limites.

SUB Main()
    # Milliseconds reçoit secondsText="0.35". Texte non numérique, NaN et valeurs hors de 0.1..5
    # secondes donnent -1. Sinon la multiplication par 1000 renvoie Decimal 350 pour une attente
    # ultérieure, sans appeler 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

Explication des paramètres et du déroulement:

  • Milliseconds reçoit secondsText="0.35". Texte non numérique, NaN et valeurs hors de 0.1..5 secondes donnent -1. Sinon la multiplication par 1000 renvoie Decimal 350 pour une attente ultérieure, sans appeler Wait.

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

Clone this wiki locally