"int" (=Kommastellen entfernen) funktioniert nicht

Begonnen von dobra, Dezember 28, 2006, 20:54:31

« vorheriges - nächstes »

0 Mitglieder und 1 Gast betrachten dieses Thema.

dobra

Hallo

Ich habe schon wieder ein Problem:

Ich möchte 10% von Warenwert ohne Kommastellen ermitteln.

<!--spmacro:module(bonus)
sub bonuspunkt {
   my $index = $_[0];
   my $bp = main::fp(ssp::get_var_db("PRICE",$index)/1000);     ## gibt 10% vom Warenwert mit 2 Kommastellen aus
   my $zahl = int($bp);    ##  "int" sollte die Kommastellen entfernen  -  tut es aber nicht - Ausgabe = 0
   main::mprint($zahl);   
}
-->

Ausgabe mit  __bonus::bonuspunkt__

<!--spmacro:module(bonus)
sub bonuspunkt {
   my $index = $_[0];
   my $bp = main::fp(ssp::get_var_db("PRICE",$index)/1000);
   my $zahl = ($bp);    ##oder  my $zahl = $bp;
   main::mprint(int($zahl));
}
-->

und auchmit    my $index = $_[0];
   my $bp = main::fp(ssp::get_var_db("PRICE",$index)/1000);
   main::mprint(int($bp));

das selbe Ergebnis

Bin mit meiner neu erworbenen Perl-Weisheit schon wieder am Ende, bevor ich noch richtig angefangen habe   :'(

mfG
dobra

admin

Hallo Woll-Insel,

die Funktion main::fp() gibt den Preis formatiert inkl.Währung aus.
Die Funktion int() kann aber nur mit rein numerischen Werten arbeiten,
Deshalb main::fp() Funktion erst zum Schluß verwenden, wenn ein Währungsbetrag ausgegeben werden soll.

Also z.B. so:


<!--spmacro:module(bonus)
sub bonuspunkt {
   my $index = $_[0];
   my $bp = ssp::get_var_db("PRICE",$index)/1000;     ## gibt 10% vom Warenwert mit 2 Kommastellen aus
   my $zahl = main::fp(int($bp));    ##  "int" sollte die Kommastellen entfernen  -  tut es aber nicht - Ausgabe = 0
   main::mprint($zahl);   
}
-->


Gruss hop


dobra

#2
Danke für den Hinweis
Zitatdie Funktion main::fp() gibt den Preis formatiert inkl.Währung aus.

Für meine Idee brauche ich aber nur eine Zahl (ohne Währung und ,00)
- ich muß also das "main::fp" überhaupt weglassen
so gehts
<!--spmacro:module(bonus)
sub bonuspunkt {
   my $index = $_[0];
   my $bp = ssp::get_var_db("PRICE",$index)/1000;    
   main::mprint(int($bp));   
}
-->

wieder ein bißchen dazugelernt    - Danke
mfG
dobra