@CheshKin

Как получить целое число?

При суммировании чисел в JAVA и записи их в label = вместо суммы выдает 3.15E7,
Как обойти?

ReadFile reader4 = new ReadFile();
        reader4.read("src//test.txt");
        reader4.calculateSum();

        userName5.setText(String.valueOf("     Общая Сумма:    \n"+reader4.calculateSum()));
        grid.add(userName5, 2, 20);

SumClass.java -он считает и передает в первый
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

/**
 * Created by ivanzemzerov on 10.02.15.
 */
public class SumClass {

    List<User> users = new ArrayList<User>();

    public void read(String path) {
        BufferedReader readFromFile = null;
        try {
            readFromFile = new BufferedReader(new FileReader(path));
            String line = null;
            while ((line = readFromFile.readLine()) != null) {
                User newUser = new User(line);
                users.add(newUser);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {

            if (readFromFile != null)
                try {
                    readFromFile.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }

        }
    }

    public double calculateSum() {
        double sum = 0;
        for (User user : users) {
            sum += user.getKey();
        }
        return sum;
    }

    private class User {
        public double key = 0;
        public String value;


        public User(String line) {
            if (line != null && !line.isEmpty()) {
                String[] entries = line.split("\\s", 8);
                this.key = Double.valueOf(entries[6]); // можно завернуть в
                // try {} catch
                this.value = entries[5];
            } else {
                // логируем
            }
        }

        public double getKey() {
            return key;
        }

        public String getValue() {
            return value;
        }
    }
}
  • Вопрос задан
  • 221 просмотр
Решения вопроса 2
@protven
Код покажите. А так могу наванговать что-то типа

int intValue = (int) Math.round(doubleValue);
Ответ написан
EugeneP2
@EugeneP2
Java Dev
Для арифметических операций лучше использовать java.math.BigDecimal

BigDecimal a = BigDecimal.valueOf(654.64654);
	BigDecimal b = BigDecimal.valueOf(94.03654);
	
	BigDecimal sum = a.add(b).setScale(2, BigDecimal.ROUND_HALF_UP);
	
	System.out.println(sum.toString());


748.68
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы