[hibernate-dev] [Bean Validation] @Max / @Min as double instead of long

Emmanuel Bernard emmanuel at hibernate.org
Wed Mar 4 18:49:23 EST 2009


[Follow up with Sebastian]

Well good point and frankly I do not know :)
1. do we support float and double for @Min / @Max?
2. if 1 is yes, I'd be inclined to say the value should be double but  
that's not fully automatic.

PS: I don't think the issue is addressable per se, it has to be  
understood by users.

On  Feb 27, 2009, at 16:54, Sebastian Thomschke wrote:

> You have the same problem when the max value is a long:
>
> System.out.println(0.99999999999999997d < 1L);
>
> So one part is the question do we support the @Max for float and  
> double
> properties? And if so how do we address this issue?
>
> Emmanuel Bernard wrote:
>> Not sure what the correct word is, might be fractional part vs  
>> integer
>> part.
>>
>> We are doing comparison so
>> say @Max(2.3d) applied on 2.2999999999999997d
>> Also I am comparing a long with it's double equivalent
>>
>> System.out.println(2.2999999999999997d < 2.3d);
>> System.out.println(new BigDecimal(""+2.2999999999999997d).compareTo(
>> new BigDecimal(""+2.3d) ) == -1);
>> System.out.println( new  
>> BigDecimal(9223372036854775807l).compareTo(new
>> BigDecimal(9223372036854775807d)) == 0 );
>>
>> Result
>> false
>> false
>> false
>>
>>
>> Not a pleasant surprise
>>
>>
>> On  Feb 27, 2009, at 17:20, Sebastian Thomschke wrote:
>>
>>> Yepp, I am aware of these rounding errors, however I think this is
>>> mainly a problem if you are doing float/double based mathematical
>>> operations. We are "only" using the value as a reference.
>>>
>>> The alternative would be to have a separate long/int attribute to
>>> specify the value after the decimal point (what's the correct  
>>> Engl. word
>>> for this btw.?).
>>>
>>> Emmanuel Bernard wrote:
>>>> This article scares me
>>>> http://firstclassthoughts.co.uk/java/traps/java_double_traps.html
>>>>
>>>> That would make comparison just unreliable. Still thinking it's a  
>>>> good
>>>> idea?
>>>>
>>>>
>>>> On  Feb 27, 2009, at 15:15, Sebastian Thomschke wrote:
>>>>
>>>>> Sounds good, in OVal we are also using double.
>>>>>
>>>>> Emmanuel Bernard wrote:
>>>>>> values are of type long.
>>>>>> Someone asked to move to double. What do you think?
>>>>>>
>>>>
>>>>
>>>
>>
>


On  Feb 27, 2009, at 10:54, Emmanuel Bernard wrote:

>
> On  Feb 27, 2009, at 15:11, Hardy Ferentschik wrote:
>
>> On Fri, 27 Feb 2009 15:01:40 +0100, Emmanuel Bernard <emmanuel at hibernate.org 
>> > wrote:
>>
>>> values are of type long.
>>> Someone asked to move to double. What do you think?
>>
>> Kind of makes sense, since we allow to put @Min and @max onto  
>> decimal fields.
>> Are there any disadvantages or problems with moving to double?
>>
>
> Looks like double is a no-go
> http://firstclassthoughts.co.uk/java/traps/java_double_traps.html
>
> _______________________________________________
> hibernate-dev mailing list
> hibernate-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/hibernate-dev




More information about the hibernate-dev mailing list