Java Number Compare compareDoubleAgainstLong(double lhs, long rhs)

Here you can find the source of compareDoubleAgainstLong(double lhs, long rhs)

Description

compare Double Against Long

License

Open Source License

Declaration

public static int compareDoubleAgainstLong(double lhs, long rhs) 

Method Source Code


//package com.java2s;
/*//  ww w .ja  v a2 s  .  co  m
 * Copyright (c) 2002-2016 "Neo Technology,"
 * Network Engine for Objects in Lund AB [http://neotechnology.com]
 *
 * This file is part of Neo4j.
 *
 * Neo4j is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

import java.math.BigDecimal;

public class Main {
    private static final long NON_DOUBLE_LONG = 0xFFE0_0000_0000_0000L;

    public static int compareDoubleAgainstLong(double lhs, long rhs) {
        if ((NON_DOUBLE_LONG & rhs) != NON_DOUBLE_LONG) {
            if (Double.isNaN(lhs)) {
                return +1;
            }
            if (Double.isInfinite(lhs)) {
                return lhs < 0 ? -1 : +1;
            }
            return BigDecimal.valueOf(lhs).compareTo(BigDecimal.valueOf(rhs));
        }
        return Double.compare(lhs, rhs);
    }
}

Related

  1. compare(final Number x, final Number y)
  2. compare(Object o1, Object o2)
  3. compareDoublesWithTolerance(double aa, double bb, double tolerance)
  4. compareStringsAsNumbers(String s1, String s2, String op)
  5. compareTo(double v1, double v2)
  6. compareTo(Object val1, Object val2)