#1134: unexpected behavior of AgaviDecimalFormatter's thousand separators when
passing a number < 1000
---------------------------+------------------------------------------------
 Reporter:  Dennis Meckel  |       Owner:  david
     Type:  task           |      Status:  new  
 Priority:  low            |   Milestone:  1.0.2
Component:  util           |     Version:  1.0.1
 Severity:  normal         |    Keywords:       
Has_patch:  0              |  
---------------------------+------------------------------------------------
 I have done some testing with AgaviDecimalFormatter and discovered an
 unexpected behavior.

 Case #1: $value='9.95'; $locale=de_DE; $hasExtraChars=false;

 Case #2: $value='9,95'; $locale=en_US; $hasExtraChars=false;

 $result = AgaviDecimalFormatter::parse($value, $locale, $hasExtraChars);

 Result #1: $result = int(995); $hasExtraChars=false

 Result #2: $result = int(995); $hasExtraChars=false

 I expected according to the apidocs in both cases $result = int(9) and
 $hasExtraChars=true.

 If I am right i would recommend to fix the bug by adding a strict mode [1]
 which will set the $result to bool(false). when strict mode is disabled i
 would prefer an reparation of the $value like locale=en_US; $value='9,95'
 => $result='9,950' instead of $result='995'.

 another idea would be:

 strict=false => repair the thousand/$cents separators to get a valid
 localized number - now return the value (would help people who work both
 with 'en_*' and $other localized numbers).

 strict=true =>  see [1]

 i wonder how you will fix this issue if it is a bug.

-- 
Ticket URL: <http://trac.agavi.org/ticket/1134>
Agavi <http://www.agavi.org/>
An MVC Framework for PHP5



_______________________________________________
Agavi Tickets Mailing List
[email protected]
http://lists.agavi.org/mailman/listinfo/tickets

Reply via email to