类型不匹配:can';t从double转换为int-java publicstaticvoidmain(字符串[]args){ 试一试{ BufferedReader br=新的BufferedReader(新文件读取器(“file.txt”); String[]pole=br.readLine().split(“”); double L=double.parseDouble(极点[0]); double N=double.parseDouble(极点[1]); 字符串[]权重=新字符串[N]; 双[]刻度=新双[N]; 双精度[]位置=新双精度[N]; 对于(int i=0;i

类型不匹配:can';t从double转换为int-java publicstaticvoidmain(字符串[]args){ 试一试{ BufferedReader br=新的BufferedReader(新文件读取器(“file.txt”); String[]pole=br.readLine().split(“”); double L=double.parseDouble(极点[0]); double N=double.parseDouble(极点[1]); 字符串[]权重=新字符串[N]; 双[]刻度=新双[N]; 双精度[]位置=新双精度[N]; 对于(int i=0;i,java,types,int,double,type-mismatch,Java,Types,Int,Double,Type Mismatch,,因为N是double,所以这里需要一个类型case public static void main(String[] args) { try{ BufferedReader br=new BufferedReader(new FileReader("file.txt")); String[] pole=br.readLine().split(" "); double L=Double.parseDouble(pole[0]); double N=Double.

,因为N是
double
,所以这里需要一个类型case

public static void main(String[] args) {
try{
    BufferedReader br=new BufferedReader(new FileReader("file.txt"));

    String[] pole=br.readLine().split(" ");
    double L=Double.parseDouble(pole[0]);
    double N=Double.parseDouble(pole[1]);
    String[] weight=new String[N];
    double[] scale=new double[N];
    double[] place=new double[N];
    for(int i=0; i<N; i++){
        weight[i]=br.readLine();
        String[] variable=weight[i].split(" ");
        double variable1=Double.parseDouble(variable[0]);
        double variable2=Double.parseDouble(variable[1]);
        scale[i]=variable2;
        place[i]=variable1*variable2;               
    }

原因是
double
是浮点类型,您无法创建长度为
1.5:)的数组N是double,但您正在尝试对其进行迭代。您必须对其进行类型转换。

您的问题就在这里

String[] weight=new String[(int)N];
改为

double L=Double.parseDouble(pole[0]);
double N=Double.parseDouble(pole[1]);
因为
int
只接受数组索引。

试试这个

 int L=Integer.parseInt(pole[0]);
 int N=Integer.parseInt(pole[1]);
公共类元组{
公共静态void main(字符串[]args){
试一试{
BufferedReader br=新的BufferedReader(新的文件阅读器(“UserController.txt”);
String[]pole=br.readLine().split(“”);
double L=double.parseDouble(极点[0]);
double N=double.parseDouble(极点[1]);
System.out.println(“L是”+L);
字符串[]权重=新字符串[(int)N];
双[]标度=新双[(int)N];
双[]位=新双[(int)N];

对于(int i=0;i,为什么要截断数据而不是对其进行舍入?@antoniosss为True,但舍入没有意义。如果值0.9或0.51:)在这种情况下都相同,我从不创建元素。
public class Tuple {

    public static void main(String[] args) {
        try{
            BufferedReader br=new BufferedReader(new FileReader("UserController.txt"));

            String[] pole=br.readLine().split(" ");
            double L=Double.parseDouble(pole[0]);
            double N=Double.parseDouble(pole[1]);
            System.out.println("L is "+L);
            String[] weight=new String[(int) N];
            double[] scale=new double[(int) N];
            double[] place=new double[(int) N];
            for(int i=0; i<N; i++){
                weight[i]=br.readLine();
                String[] variable=weight[i].split(" ");
                double variable1=Double.parseDouble(variable[0]);
                double variable2=Double.parseDouble(variable[1]);
                scale[i]=variable2;
                place[i]=variable1*variable2;               
            }
        }
            catch(Exception e) {
                e.printStackTrace();
            }
    }
 }