Skip to content

API CSng de

Codex edited this page Sep 23, 2026 · 1 revision

CSng

ClassicUO / Basic IDE

Home · API · Basic

Liest eine numerische Einstellung für Berechnungen, etwa eine Verzögerung in Sekunden.

Genaue Syntax

CSng(value:Any) -> Decimal

Parameter

  • value — Ein erforderlicher Integer/Decimal oder numerischer String mit Punkt und optionalem Exponenten, unabhängig von der Sprache. "0x0EED" ist hier kein Zahlentext. Ungültiger Text, Array, Object und Unit werden 0. Eingaben mit IsNumeric prüfen.

Rückgabewert

Decimal auf Basis eines 64-Bit-double. CDbl und CSng haben dieselbe Genauigkeit; CSng reduziert nicht auf 32-Bit-Single. Ungültige Eingaben ergeben 0, daher beweist Null keine erfolgreiche Umwandlung. NaN und Infinity sind möglich; Grenzen gesondert prüfen.

Verhalten

  • Ein erforderlicher Integer/Decimal oder numerischer String mit Punkt und optionalem Exponenten, unabhängig von der Sprache. "0x0EED" ist hier kein Zahlentext. Ungültiger Text, Array, Object und Unit werden 0. Eingaben mit IsNumeric prüfen.
  • Decimal auf Basis eines 64-Bit-double. CDbl und CSng haben dieselbe Genauigkeit; CSng reduziert nicht auf 32-Bit-Single. Ungültige Eingaben ergeben 0, daher beweist Null keine erfolgreiche Umwandlung. NaN und Infinity sind möglich; Grenzen gesondert prüfen.

Interne Funktionen: vom Aufruf zum Ergebnis

Liest eine numerische Einstellung für Berechnungen, etwa eine Verzögerung in Sekunden.

1. BasicDouble

Ein erforderlicher Integer/Decimal oder numerischer String mit Punkt und optionalem Exponenten, unabhängig von der Sprache. "0x0EED" ist hier kein Zahlentext. Ungültiger Text, Array, Object und Unit werden 0. Eingaben mit IsNumeric prüfen.

Decimal auf Basis eines 64-Bit-double. CDbl und CSng haben dieselbe Genauigkeit; CSng reduziert nicht auf 32-Bit-Single. Ungültige Eingaben ergeben 0, daher beweist Null keine erfolgreiche Umwandlung. NaN und Infinity sind möglich; Grenzen gesondert prüfen.

Projektquelle: external/InjectionScript/src/InjectionScript/Runtime/InjectionApi.cs; Funktion BasicDouble.

Beispiele

CSng — 1

# CSng1
#
# Liest eine numerische Einstellung für Berechnungen, etwa eine Verzögerung in Sekunden.
#
# Decimal auf Basis eines 64-Bit-double. CDbl und CSng haben dieselbe Genauigkeit; CSng
# reduziert nicht auf 32-Bit-Single. Ungültige Eingaben ergeben 0, daher beweist Null keine
# erfolgreiche Umwandlung. NaN und Infinity sind möglich; Grenzen gesondert prüfen.

SUB Main()
    # value="0.35" verwendet einen Dezimalpunkt. Main liefert Decimal 0.35 Sekunden, ohne zu warten.

    RETURN CSng("0.35")
END SUB

Erläuterung der Parameter und Ausführung:

  • value="0.35" verwendet einen Dezimalpunkt. Main liefert Decimal 0.35 Sekunden, ohne zu warten.

CSng — 2

# CSng2
#
# Liest eine numerische Einstellung für Berechnungen, etwa eine Verzögerung in Sekunden.
#
# Decimal auf Basis eines 64-Bit-double. CDbl und CSng haben dieselbe Genauigkeit; CSng
# reduziert nicht auf 32-Bit-Single. Ungültige Eingaben ergeben 0, daher beweist Null keine
# erfolgreiche Umwandlung. NaN und Infinity sind möglich; Grenzen gesondert prüfen.

SUB Main()
    # value="3e1" bedeutet 30. Division durch 4 ergibt Decimal 7.5. Exponentialschreibweise ist
    # unabhängig von der Oberflächensprache.

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

Erläuterung der Parameter und Ausführung:

  • value="3e1" bedeutet 30. Division durch 4 ergibt Decimal 7.5. Exponentialschreibweise ist unabhängig von der Oberflächensprache.

CSng — 3

# CSng3
#
# Liest eine numerische Einstellung für Berechnungen, etwa eine Verzögerung in Sekunden.
#
# Decimal auf Basis eines 64-Bit-double. CDbl und CSng haben dieselbe Genauigkeit; CSng
# reduziert nicht auf 32-Bit-Single. Ungültige Eingaben ergeben 0, daher beweist Null keine
# erfolgreiche Umwandlung. NaN und Infinity sind möglich; Grenzen gesondert prüfen.

SUB Main()
    # Milliseconds erhält secondsText="0.35". Nichtnumerischer Text, NaN und Werte außerhalb 0.1..5
    # Sekunden ergeben -1. Sonst liefert die Multiplikation mit 1000 Decimal 350 für ein späteres
    # Warten; Wait wird nicht aufgerufen.

    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

Erläuterung der Parameter und Ausführung:

  • Milliseconds erhält secondsText="0.35". Nichtnumerischer Text, NaN und Werte außerhalb 0.1..5 Sekunden ergeben -1. Sonst liefert die Multiplikation mit 1000 Decimal 350 für ein späteres Warten; Wait wird nicht aufgerufen.

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

Clone this wiki locally