Thomas,

I checked out Zend_Measure from the svn trunk and it works fine. Two notes
though: you need to pass the $round variable to the toString() method when
using the object as a string (or you will have values like
10.33333333333333) and converting from seconds to minutes outputs 10.5 min
as opposed to what might be preferable 10 min 30 secs (or something
similar).

Thanks again for your help.

On Wed, Oct 14, 2009 at 7:51 PM, J DeBord <jasdeb...@gmail.com> wrote:

>
> On Wed, Oct 14, 2009 at 7:14 PM, Thomas Weidner <thomas.weid...@gmx.at>wrote:
>
>> There is a known rounding failure by PHP.
>> Having this failure the automatic conversion works only when you define a
>> precision and have a precision value.
>>
>> There are 3 possible work arounds.
>>
>> 1.) Add a precision to your value and object
>>
>
> Thanks for the reply Thomas. I appreciate it. Could you explain what you
> mean by adding a precision? I have tried pass the $round var to the
> convertTo method and the toString method, but it seems to have no effect.
> Thanks again. I'll probably look at using the trunk release, but am
> interested in what you mean by adding a precision.
>
> Thanks again!
>
>
>> 2.) Use trunk release (a workaround has been added some weeks ago)
>> 3.) Wait for the next minor release
>>
>> Greetings
>> Thomas Weidner, I18N Team Leader, Zend Framework
>> http://www.thomasweidner.com
>>
>> ----- Original Message ----- From: "J DeBord" <jasdeb...@gmail.com>
>> To: "fw-general" <fw-general@lists.zend.com>
>> Sent: Wednesday, October 14, 2009 2:55 PM
>> Subject: [fw-general] Zend_Measure undesired rounding when converting
>> values
>>
>>
>>
>>  Zend_Measure_Length::convertTo rounds the values. I would like 2520
>>> meters
>>> to be converted to 2.52 km, not 3 km.
>>>
>>> I'm storing distances as meters in a mysql database. I'm using Zend_Db to
>>> pull the values.
>>>
>>> I create a new Zend_Measure_Length object with the distance value from
>>> mysql
>>> typecast to an integer. For example:
>>>
>>> //$meters = (int) $result['distance']; // (if pulling from db)
>>>
>>> $meters = 2520; // For illustrative purposes
>>>
>>> $distance = new Zend_Measure_Length($meters,
>>> Zend_Measure_Length::STANDARD);
>>>
>>> echo $distance . '<br>'; // outputs 2,520 m
>>>
>>> $distance->convertTo(Zend_Measure_Length::KILOMETER);
>>>
>>> echo $distance . '<br>'; // outputs 3 km
>>>
>>> echo $distance->toString(2); . '<br>'; // outputs 3.0 km
>>>
>>> A var_dump of $distance immediately after calling convertTo shows the
>>> value
>>> property with a value of 3.
>>>
>>> I would like and had expected the output to be 2.52 km.
>>>
>>> The same thing happens when converting seconds to minutes.
>>>
>>> Where am I going wrong? Am I overlooking a configuration option
>>> somewhere?
>>>
>>> Thanks,
>>>
>>> Jason
>>>
>>>
>>
>

Reply via email to