Ich möchte viele Dezimalzahlen als Strings in Float auf einmal zu konvertieren konvertieren. Ich versuche folgenden Code, der diese Strings zu einer Serie kombiniert und sie dann in Floats umwandelt. Das funktioniert alles in Ordnung, aber schlägt fehl, wenn ein Fehler auftritt:Konvertieren Sie String-Elemente in Reihe zu Floats in Red Sprache
a: "1.5"
b: ""
c: "3.7"
invars: [a b c]
print a
print type? a
set invars foreach x invars [append [] to-float reduce x] ; code to convert string series to float series;
print a
print type? a
Der Fehler ist:
*** Script Error: cannot MAKE/TO float! from: ""
*** Where: to
*** Stack: to-float
Zur Fehlerkorrektur habe ich versucht, folgenden Code:
temp: []
foreach x invars [
y: copy ""
either error? [set [y] to-float reduce x]
[append temp reduce x] ; put original value if not convertable
[append temp reduce y] ]
print temp
set invars temp
print a
print type? a
Aber das ist auch funktioniert nicht. Wo ist das Problem und wie kann das korrigiert werden?
Wo setze ich 'to-float' auf? – rnso
Wenn Sie eine Lösung mit ** entweder leer? ** verwenden, könnten Sie ** load ** durch ** to float ** ersetzen – sqlab
Welche funktioniert nicht? Alle Versionen funktionieren wie beschrieben. Verwenden Sie eine neue neue Konsole – sqlab