Schrift
[thread]6432[/thread]

Mit String-Werten rechnen?! (Seite 2)



<< |< 1 2 >| >> 19 Einträge, 2 Seiten
Crian
 2004-07-26 16:33
#84984 #84984
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
[quote=renee,26.07.2004, 13:37]Aber wie Ronnie schon in seiner ersten Antwort geschrieben hat, muss das ',' duch '.' ersetzt werden, da sonst nur die Zahlen vor dem ',' berücksichtig werden (siehe format_c's Code)...[/quote]
Ja, hab ich doch auch gesagt und noch Code gepostet, um diese in Punkte zu wandeln.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
pq
 2004-07-26 16:44
#84985 #84985
User since
2003-08-04
12209 Artikel
Admin1
[Homepage]
user image
[quote=Ronnie,26.07.2004, 12:24]Probier es mal so:
Code: (dl )
s/,/\./g for ($Wert1, $Wert2);

[/quote]
tr/,/./ for ($Wert1, $Wert2); dürfte deutlich schneller sein
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
pq
 2004-07-26 16:48
#84986 #84986
User since
2003-08-04
12209 Artikel
Admin1
[Homepage]
user image
[E|B
,26.07.2004, 13:01]
Wieso so kompliziert? :)

weil's mit deiner lösung nicht geht!
einfach weil die anforderung war, dass in den strings kommas
vorkommen. du machst es dir sehr einfach und nimmst einfach integer. dazu
kommt, dass man dafür noch nicht mal das eval() bräuchte.
und falls kommas drin vorkommen, hilft dir das eval auch nicht.
eval ("1,2" + "3,4") ergibt nicht 4,6, sondern 4 und zwei warnungen.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
[E|B]
 2004-07-26 16:58
#84987 #84987
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Quote
eval ("1,2" + "3,4") ergibt nicht 4,6, sondern 4 und zwei warnungen.


Oha, stimmt. Tut mir Leid, das nächste Mal probier ich zuerst meine Beispiele aus, bevor ich poste.
Wie kommts aber dazu, dass 4 ausgespuckt wird?
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
kabel
 2004-07-26 17:07
#84988 #84988
User since
2003-08-04
704 Artikel
BenutzerIn
[default_avatar]
alle zeichen zusammen bis zum komma [s]wird[/s]werden als eine zahl interpretiert ...
perl -e 'print "1,2" + 0' #1\n\n

<!--EDIT|kabel|1090847310-->
-- stefan
Strat
 2004-07-26 18:13
#84989 #84989
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
@E|B: das problem ist, dass es in Perl vom Kontext abhaengt, ob etwas als String oder Zahl betrachtet wird. Wenn der String "1,3" als Zahl verwendet wird, z.B.
Code: (dl )
print 0 + "1,3";

dann werden vom anfang an alle ziffern extrahiert, bis es auf ein zeichen stoesst, das in einer zahl nicht vorkommen kann (hier das komma). also hast du 1+3, was vier ergibt...
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Ronnie
 2004-07-26 18:44
#84990 #84990
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
[quote=pq,26.07.2004, 14:44]tr/,/./ for ($Wert1, $Wert2); dürfte deutlich schneller sein[/quote]
ja stimmt. vergesse ich leider immer wieder.
renee
 2004-07-27 02:11
#84991 #84991
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
@Strat: Bei Deinem Beispiel kommt aber 1 raus, da nur die Zahl vor dem Komma genommen wird. 0 + 1 = 1!
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Strat
 2004-07-27 02:18
#84992 #84992
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
@renee: sorry, schlecht gequoted; sollte antwort auf
Quote
E|B
eval ("1,2" + "3,4") ergibt nicht 4,6, sondern 4 und zwei warnungen.

sein, und die erklaerung, dass "1,2" in numerischem kontext 1 ergibt (dafuer das beispiel), und das zweite beispiel mit "3,4" => 3 habe ich mir dann gespart, und gleich auf 1+3=4 geschlossen\n\n

<!--EDIT|Strat|1090880360-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< |< 1 2 >| >> 19 Einträge, 2 Seiten



View all threads created 2004-07-26 14:16.