Jump to content
xt:Commerce Community Forum

Preise Runden


dakira

Recommended Posts

Hi,

vorweg: dies betrifft nicht xtcommerce sondern ist nur eine phpfrage, die hoffentlich einer der faehigen entwickler hier beantworten kann :-) In XTCommerce ist das soweit ich weiss integriert, also sollte jemand wissen, was ich meine.

ich moechte zahlen runden, und zwar grundsaetzlich nach oben. Aber nicht auf ganze zahlen, sondern auf die naechsten 0,05. also ein ceil(), was auf die naechsten 0,05 nach oben rundet.

Bsp: auf 2.51 wird 2.55 und aus 2.56 wird 2.60.

mein naiver ansatz war:

function my_ceil($wert){

while(($wert % 0.05) != 0){

$wert+=0.01;

}

return $wert;

}

so dass my_ceil(9.99) die zahl 10.00 zurueckgibt..

theoretisch sollte das gehen.. praktisch funktioniert es leider nicht.. vielleicht kann mir ja jemand helfen.

Link to comment
Share on other sites

Originally posted by dakira@Dec 2 2003, 19:30 PM

mhh.. danke fuer den versuch.. leider bringt das kein ergebnis.

dein code fuerde das machen:

2.51 + .49 = 3.00

das auf 2 nachkommastellen gerundet ist 3.00.

es muss aber 2.55 rauskommen..

trotzdem danke fuer die muehe!

gruss

matthias

http://www.phpe.net/manual/function.round.php

da gibs einige fertige :)

Link to comment
Share on other sites

  • 3 months later...

<?php

/* -----------------------------------------------------------------------------------------

  $Id: xtc_precision.inc.php,v 1.2 2003/11/10 20:42:36 fanta2k Exp $


  XT-Commerce - community made shopping

  http://www.xt-commerce.com


  Copyright (c) 2003 XT-Commerce

  -----------------------------------------------------------------------------------------

  by Mario Zanier for XTcommerce


  based on:

  (c) 2003 nextcommerce (xtc_precision.inc.php,v 1.5 2003/08/19); [url]www.nextcommerce.org[/url]


  Released under the GNU General Public License 

  ---------------------------------------------------------------------------------------*/


function xtc_precision($number,$places)

	{

  $number=(round(20*$number))/20;

 return (round($number,$places));

	}

 ?>

Link to comment
Share on other sites

hallo mario

...ich bin offenbar zu unf?hig oder einfach ein greenhorn...

wo f?ge ich in aller welt bitte die o.a. scripterg?nzung ein um bei schweizerfranken auf 5 rappen (entspricht in ungef?hr dem euro-cent) zu runden?

vielen dank f?r deine antwort.

Link to comment
Share on other sites

  • 1 year later...

tja bei mir scheint das irgendwie nicht zu klappen :(

ich habe xtc 3.03

und auch wie oben beschrieben folgendes in der xtc_precision.inc.php abge?ndert:

<?php

function xtc_precision($number,$places)

{

$number=(round(20*$number))/20;

return (round($number,$places));

}

?>

reaktion = null die preise sind immer noch nicht gerundet...

woran kann das liegen ?

Link to comment
Share on other sites

Hallo

K?nnt Ihr bitte dieses Problem nochmal aufnehmen. Habe heute selbst versucht das bei jayorg in den Griff zu bekommen, allerdings rundet das effektiv einfach nicht. Er hat V3.0.3 Standardw?hrung ist Euro, zweitw?hrung ist Schweizer Franken mit dem faktor 1.75000000. Es ist ebenfalls Brutto Admin auf true und es wird auf 4 stellen gerundet. Die Euro Preise w?ren ja nicht so ein Problem, doch rundet es einfach die CH Preise nicht auf .05 oder .10 .20 .35 usw.

Er hat auch in der xtc_precision.inc.php folgenden Code eingef?ht

<?php

/* -----------------------------------------------------------------------------------------

 $Id: xtc_precision.inc.php,v 1.2 2003/11/10 20:42:36 fanta2k Exp $


 XT-Commerce - community made shopping

 http://www.xt-commerce.com


 Copyright (c) 2003 XT-Commerce

 -----------------------------------------------------------------------------------------

 by Mario Zanier for XTcommerce


 based on:

 (c) 2003 nextcommerce (xtc_precision.inc.php,v 1.5 2003/08/19); [url]www.nextcommerce.org[/url]


 Released under the GNU General Public License

 ---------------------------------------------------------------------------------------*/


function xtc_precision($number,$places)

{

  $number=(round(20*$number))/20;

 return (round($number,$places));

}

?>

Rundet aber leider trotzdem nicht. Was k?nnte hier denn sonst noch falsch sein wenn dies nicht geht. Liegt es am Faktor, muss dieser unter dieser Konstellation anders eingegeben werden?

Es verwendet f?r die deutschen Kunden dann das Deutsche Postmodul und weil sie auch Kunden in CH haben und dort ein B?ro ist von welchem der Versand get?tigt wird bietet er zus?tzlich freigegeben f?r Zone 0 das CH Post Modul an.

Es w?re wirklich super, wenn ihr uns, Ihm da helfen k?nntet!!

Besten Dank Patrick

Link to comment
Share on other sites

Hi Jungs

Ich w?rd ja selbst, wenn ich nur mehr php k?nnte und w?sste weshalb es nicht geht!!

Wenn man zwei W?hrungen hat, kann man dann nicht evtl. mit einer if variable nur die eine Runden?

Wir verstehen auch nicht weshalb das nicht funktioniert, da muss wohl echt einer von euch Super Profis mal ran!!

Gruss Patrick

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...