Thread Prüfen, ob Zahl oder String
(16 answers)
Opened by renee at 2003-10-09 15:34
Wenn im zweiten Fall "ja" herauskommt, ist dein perl kaputt, denn die Zahlen sind nicht gleich. ;)
Was den Underscore angeht: Perl mag ihn nur zwischen Ziffern, wo er ja auch sinnvoll ist; an anderen Stellen einer Zahl gibt's eine Warnung. Zum Problem siehe uebrigens auch perldata: [quote=Scalar values,perldata] [...] At other times, you might prefer to determine whether string data can be used numerically by calling the POSIX::strtod() function or by inspecting your string with a regular expression (as documented in perlre). warn "has nondigits" if /\D/; warn "not a natural number" unless /^\d+$/; # rejects -3 warn "not an integer" unless /^-?\d+$/; # rejects +3 warn "not an integer" unless /^[+-]?\d+$/; warn "not a decimal number" unless /^-?\d+\.?\d*$/; # rejects .2 warn "not a decimal number" unless /^-?(?:\d+(?:\.\d*)?|\.\d+)$/; warn "not a C float" unless /^([+-]?)(?=\d|\.\d)\d*(\.\d*)?([Ee]([+-]?\d+))?$/; [/quote] |