无法从 float 转换为 int

Cannot convert from float to int

我有一些这样的代码:

void drawPlot()
{
    String[] dataItemPrices = loadStrings("itemPrices.csv");  //load in .csv file, store as string array
    itemName = new String[dataItemPrices.length-1];
    itemPrice = new float[dataItemPrices.length-1];

    for (int i=0; i<dataItemPrices.length-1; i++) 
    {
        //split array to consider commas
        String[] tokensItemPrices = dataItemPrices[i+1].split(",");   
        itemName[i] = tokensItemPrices[0];
        itemPrice[i] = Float.parseFloat(tokensItemPrices[1]);

        dataMin = min(dataMin,itemPrice[i]); 
        dataMax = max(dataMax,itemPrice[i]); 

        itemPriceScaled = new float[map(itemPrice[i], dataMin, dataMax, 
                                        0, (height-100))];
    }
}

最后一行代码导致问题,当我编译时我得到 "cannot convert from float to int"。

唯一的 int 是 [i],但它用于访问数组,不会吧?否则我如何访问数组?

请帮忙!

谢谢!

有几个可能的选择:

  1. 您正在创建一个新的 float 数组,您需要一个 int 大小,map return 是一个 float 吗?如果是这种情况,map 可能需要进行重大修改。

  2. map需要什么样的参数? itemPrice[i]、dataMin 和 dataMax 都是浮点数(高度也可以),这样正确吗?在这种情况下,转换为 (int) 可能就足够了,或者您的函数原型需要修复...

请将 map 的代码和所有变量声明添加到您的问题中。

编辑:

在你发表评论并查看你的代码之后,也许这就是你想要做的:用价格填充一个数组(取自 itemPrice 数组)"scaled" 使用 map 显然有与其他两个数组大小相同:

void drawPlot()
{
    String[] dataItemPrices = loadStrings("itemPrices.csv");  //load in .csv file, store as string array
    itemName = new String[dataItemPrices.length-1];
    itemPrice = new float[dataItemPrices.length-1];
    itemPriceScaled = new float[dataItemPrices.length-1]; // <<<<<Added

    for (int i=0; i<dataItemPrices.length-1; i++) 
    {
        //split array to consider commas
        String[] tokensItemPrices = dataItemPrices[i+1].split(",");   
        itemName[i] = tokensItemPrices[0];
        itemPrice[i] = Float.parseFloat(tokensItemPrices[1]);

        dataMin = min(dataMin,itemPrice[i]); 
        dataMax = max(dataMax,itemPrice[i]); 

        itemPriceScaled[i] = map(itemPrice[i], dataMin, dataMax, 
                                        0, (height-100)); //<<<Modified
    }
}