velocity-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Anders Lindback <and...@igiro.se>
Subject Re: comparing monetary value
Date Wed, 16 Oct 2002 13:04:38 GMT
Daniel Dekany skrev:
> Wednesday, October 16, 2002, 9:44:17 AM, Martin Jacobson wrote:
> 
> > STham@thoughtworks.COM wrote:
> 
> >>    I believed at the moment, all numbers are treated as Integer. Anyone
> >> came across this problem of manipulating with money value before?
> >> 
> >> Example :
> >> 
> >>   Give a certain amount has to be less than a given value.
> >> 
> >>    if ($someMoneyValue < 0.01) ???
> >> 
> >> How do people normally handle money in velocity?? Thanks.
> >
> > This thread, for all the heat it is generating, surely revolves around 
> > the separation between business logic, and presentation. If you think 
> > that a rigorous separation is a Good Thing, then there seems, on the 
> > present evidence, to be no requirement for Velocity to handle any 
> > numerical values other than integers. If, on the other hand, you want to 
> > be able to manipulate, eg, monetary values in the template, then 
> > 'vanilla' Velocity won't work for you.
> 
> I guess we have already seen that sometimes you need decimal values in
> representation tasks (money...). The list-readers who don't want
> decimals also admit this when they show workarounds like valueInCents.
> Why is it better to force designers (and programmers) to play with
> $valueInCents+tools, than simply providing decimal support? Why is it
> less error prone and nicer to complicate things with those multiplied
> values (force designers to always keep in mind, that what is 10.25 in
> real-world, is 1025 here...), than simply use decimals? Does it make
> sense?

It makes perfectly sense since computors are digital and are very poor
to represent floating point numbers. Fractions are a pain in the ass
- one of the reasons for BigDecimal is too remedy that problem. 

Many number that you think would be easy to represent in a computer 
are not easy to represent given todays FPU.  This is especially true
when you start talking about respresenting money with floats. 

For example you can get a situation where 2 + 2 != 4 when using
with floating point numbers. (2+2 may becomes 3.9999999999999 instead. )





--
To unsubscribe, e-mail:   <mailto:velocity-user-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:velocity-user-help@jakarta.apache.org>


Mime
View raw message