2014-09-15 12 views
-1

У меня есть значение/курс. Мне нужно, чтобы оно соответствовало 8 десятичным знакам.Соответствие значению до 8 знаков после запятой

Я не хочу использовать Regex.

Есть ли другой способ сделать это?

Я пробовал найти много онлайн, но не мог понять это.

Заранее спасибо

ввода образца +65,2341234567

мне просто нужно сравнить его со значением Шифрование до 8 знаков после запятой. т.е. 64.23412345.

+0

Не могли бы вы вставить образец ввода и ожидаемый выход – sol4me

+0

Не видите причину downvote. Вопрос довольно ясен? –

+0

Я не преуменьшил – sol4me

ответ

2
import java.math.BigDecimal; 

public class Compare { 

    public static void main(String[] args) { 
     BigDecimal bd1 = new BigDecimal("65.2341234567").setScale(8, BigDecimal.ROUND_FLOOR); 
     BigDecimal bd2 = new BigDecimal("65.234123456799").setScale(8, BigDecimal.ROUND_FLOOR); 

     System.out.println("equals " + bd1.equals(bd2)); 
    } 
} 
+0

работал. Спасибо –

0

Из-за непредсказуемой точности машины вы не всегда сможете сравнивать этот диапазон точности со стандартными типами данных.

Я думаю, было бы разумнее сравнивать в диапазоне с эпсилонным значением, которое отмечает «потерянную» точность.

< значение значение эпсилон и значение> значение + эпсилон

пусть будет Эпсилон достаточно малое значение, как 0,002

как в примере.

Надеюсь, это поможет.

Смежные вопросы