Autor Thema: "int" (=Kommastellen entfernen) funktioniert nicht  (Gelesen 6761 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
"int" (=Kommastellen entfernen) funktioniert nicht
« 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   :'(



Linkback: https://www.shoppilot.net/pf/index.php?topic=757.0
mfG
dobra

Offline admin

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 545
  • Lob: 10
Re: "int" (=Kommastellen entfernen) funktioniert nicht
« Antwort #1 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


Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
Re: "int" (=Kommastellen entfernen) funktioniert nicht
« Antwort #2 am: Dezember 29, 2006, 05:07:09 »
Danke für den Hinweis
Zitat
die 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
« Letzte Änderung: Dezember 29, 2006, 06:50:17 von Woll-Insel »


question
"(" und ")" nicht anzeigen

Begonnen von dobra

2 Antworten
8331 Aufrufe
Letzter Beitrag Mai 09, 2007, 10:45:31
von dobra
xx
"nicht auf Rechnung" für Neukunden im alternativen Bestellablaug

Begonnen von dobra

0 Antworten
5534 Aufrufe
Letzter Beitrag November 16, 2012, 15:23:51
von dobra
xx
"Bild" statt "Titel" in __tab__ anzeigen?

Begonnen von dobra

4 Antworten
7395 Aufrufe
Letzter Beitrag Februar 21, 2008, 15:24:34
von dobra
xx
"nicht auf Rechnung" ohne login

Begonnen von dobra

0 Antworten
6308 Aufrufe
Letzter Beitrag Februar 24, 2010, 07:34:14
von dobra