Shopsystem ShopPilot

ShopPilot => SSP - Shop Server Pages => Thema gestartet von: dobra am Dezember 28, 2006, 20:54:31

Titel: "int" (=Kommastellen entfernen) funktioniert nicht
Beitrag von: dobra am Dezember 28, 2006, 20:54:31
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   :'(

Titel: Re: "int" (=Kommastellen entfernen) funktioniert nicht
Beitrag von: admin am Dezember 29, 2006, 00:02:37
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

Titel: Re: "int" (=Kommastellen entfernen) funktioniert nicht
Beitrag von: dobra am Dezember 29, 2006, 05:07:09
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  (http://www.woll-insel.at/Bilder/Daumen_hoch.gif)  - Danke