简体   繁体   中英

Java: Error: Possible loss of precision

my program is almost ready to go I think, however, I can't seem to output the sum as a number like "3.2" or "5.2". For some reason, it's only returning the values as 2.0 or 3.0 or 4.0, like integers with a .0 at the end. Any help?

import java.io.Console;
import java.util.Scanner;
/**
 *
 * @author binka
 */
public class Samelson_Lincoln_Lab6 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Scanner in = new Scanner(System. in );
        System.out.println("Please enter a number?");
        int number = in .nextInt();
        double[] array = new double[number];
        System.out.println();
        int sign = 0;
        double term = 0;
        for (int i = 1; i < array.length; i++) {
            if (sign == 0) {
                term = Math.abs((4.0 / ((2.0 * i) - 1.0)));
                array[i] = term;
                sign = 1;
            } else if (sign == 1) {
                term = ((4.0) / ((2.0 * i) - 1));
                array[i] = -term;
                sign = 0;
            }
            System.out.println(array[i]);
        }
        boolean choice = true;
        while (choice = true) {
            System.out.println("Would you like to see the sum?: (Y or N)");
            String choicesum = in .next();
            choicesum.toUpperCase();
            if ("Y".equals(choicesum)) {
                double sum = computeSum(array);
                System.out.println("Your sum is: " + sum);
                choice = false;
                break;
            } else if ("N".equals(choicesum)) {
                System.out.println("See ya!");
                choice = false;
                break;
            } else {
                System.out.println("Not a correct response, try again!");
            }
        }
    }

    public static int computeSum(double[] array) {
        double sum = 0;
        for (int i = 0; i < array.length; i++) {
            sum = sum + array[i];
        }
        return sum;
    }
}
while (choice = true) {

should at least be

while (choice == true) {

or even better

while (choice) {

To fix your actual error, change your method signature from

public static int computeSum(double[] array) {

to

public static double computeSum(double[] array) {

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM