Um, I meant BigDecimal, not BigInteger.

On 12/10/10 18:24, Felix H. Dahlke wrote:
> You could use BigInteger, which was created to work around double's
> rounding issues - among other things.
> 
> (- 12.305M 12.3049M)
> 0.0001M
> 
> On 12/10/10 18:17, cej38 wrote:
>> I keep running into this type of problem:
>>
>> user=> (- 12.305 12.3049)
>> 9.999999999976694E-5
>>
>> The computer (probably the JVM) has just lied to me.  Any fourth grade
>> student will know that this does not equal 0.0001.  This would be less
>> of a problem is the JVM was consistent; if it were consistent then the
>> following equality would be true:
>>
>> user=> (= 0.0001 (- 12.305 12.3049))
>> false
>>
>> Now it has lied to me again!
>>
>> I need a method to reliably compare two numbers.  My first choice
>> would be to have the JVM compute (- 12.305 12.3049) correctly.
>> Barring that, I need a way to, without fail, compute the truthfulness
>> of the following: =, <, >, <=, >=.
>>
> 
> 


Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to