Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package test;
- import java.math.BigDecimal;
- import java.math.RoundingMode;
- import java.util.ArrayList;
- import java.util.concurrent.atomic.AtomicInteger;
- public class Test {
- public static ArrayList<Double> loadValues() {
- ArrayList<Double> values = new ArrayList<Double>();
- values.add(1726.014444);
- values.add(1726.014496);
- values.add(1726.024444449);
- values.add(1726.024494444);
- values.add(1726.023333333);
- values.add(1726.029999999);
- values.add(1726.045444444);
- values.add(1726.0522929);
- values.add(1726.12847120931);
- values.add(1726.985379032);
- return values;
- }
- public static ArrayList<Double> validValues() {
- ArrayList<Double> values = new ArrayList<Double>();
- values.add(1726.01);
- values.add(1726.02);
- values.add(1726.03);
- values.add(1726.03);
- values.add(1726.02);
- values.add(1726.03);
- values.add(1726.05);
- values.add(1726.05);
- values.add(1726.13);
- values.add(1726.99);
- return values;
- }
- public static void main(String[] args) {
- ArrayList<Double> values = loadValues();
- AtomicInteger currentPosition = new AtomicInteger();
- for (Double val : values) {
- double value = round(val, 2);
- double mustValue = validValues().get(currentPosition.get());
- if (value == value)
- System.out.println("Success");
- else
- System.out.println("Value " + value + " must be " + mustValue);
- currentPosition.getAndIncrement();
- }
- }
- private static double round(double numberToRound, int numberDecimals) {
- if (numberDecimals < 0) throw new IllegalArgumentException();
- String stringValue = Double.toString(numberToRound);
- String decimals = stringValue.split("\\.")[1];
- BigDecimal bd = new BigDecimal(stringValue);
- for (int i = decimals.length() - 1; i >= numberDecimals; i--) {
- bd = bd.setScale(i, RoundingMode.HALF_UP);
- }
- return bd.doubleValue();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement