Wie konvertiere ich einen string in einen float mit Perl?
Gibt es eine Funktion wie int()
was kann konvertieren einen string zu float-Wert?
Derzeit bin ich über den folgenden code:
$input=int(substr($line,1,index($line,",")-1));
Muss ich konvertieren Sie die Zeichenfolge zurückgegeben substr
zu schweben.
können Sie ein Beispiel geben, wie
$Zeile einer log-Datei. open (fHandle,"+ " <",$path) or die "$!"; foreach $line(<fHandle>) { $Eingabe=int(substr($line,1,index($line,",")-1)); } Dies ist der komplette code.
Können wir eine Beispiel-Zeile aus der Datei bitte, so können wir Ihnen eine bessere Weise zu extrahieren, die Anzahl.
sicher.Hier gehen Sie - [1258200601.016453, 'unbekannt', 'error', 'unknown Exception ', 110012]
Bitte verbessern Ihre Frage mit alle Erklärungen eher als Versteck diese in die Kommentare.
$line
generiert wird?$Zeile einer log-Datei. open (fHandle,"+ " <",$path) or die "$!"; foreach $line(<fHandle>) { $Eingabe=int(substr($line,1,index($line,",")-1)); } Dies ist der komplette code.
Können wir eine Beispiel-Zeile aus der Datei bitte, so können wir Ihnen eine bessere Weise zu extrahieren, die Anzahl.
sicher.Hier gehen Sie - [1258200601.016453, 'unbekannt', 'error', 'unknown Exception ', 110012]
Bitte verbessern Ihre Frage mit alle Erklärungen eher als Versteck diese in die Kommentare.
InformationsquelleAutor fixxxer | 2010-01-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einfach. In Perl kann eine Zeichenfolge, die aussieht wie eine Zahl IST eine Zahl.
Nun, wenn Sie sicher sein wollen, dass das Ding eine Anzahl vor Verwendung dann gibt es eine utility-Methode in
Scalar::Util
das tut es:Basiert auf der sample-Eingang Sie Links in die Kommentare, eine robuste Methode zum extrahieren der Nummer:
Wenn das wirklich der Fehler ist, dann Ihre Nummer hat Sie ein Komma im es das es nicht eine Nummer.
Edit: entfernt, int (), weil Sie wollte schweben... @fixxxer: sorry das ich copy/Paste aus deinem Beispiel.
InformationsquelleAutor slebetman
Ich weiß nicht, was Ihre Daten aussieht, aber dir ist schon klar, dass das Dritte argument substr ist eine Länge, nicht in der Lage ist, richtig? Auch die erste position ist 0. Ich vermute, Sie sind nicht immer die Daten, die Sie denken, dass Sie erhalten, und es meist zufällig funktioniert, weil Sie sind, beginnend am Anfang des Strings und sind nur Weg von einem.
Der index () - lässt mich denken, dass Sie übersehen, dass, und die Tatsache, dass Sie nicht extrahieren etwas, was Perl meint, ist eine Zahl. Zeigen Sie uns ein vollständiges Beispiel mit input-Daten, so dass wir nicht haben, zu erraten.
InformationsquelleAutor brian d foy