java - 无法从 float 转换为 int

标签 java compilation processing

我有一些这样的代码:

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))];
    }
}

最后一行代码引起了问题,当我编译时,我得到“无法从浮点转换为整数”。

唯一的 int 是 [i],但它是用来访问数组的,这不可能吧?否则我如何访问该数组?

请帮忙!

谢谢!

最佳答案

有几种可能的替代方案:

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

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

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

编辑:

在您发表评论并查看代码后,也许这就是您想要做的:使用明显相同的 map “缩放”价格(取自 itemPrice 数组)填充数组大小与其他两个数组相同:

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
    }
}

关于java - 无法从 float 转换为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29922804/

相关文章:

java - 堆栈跟踪中的“coldfusion.runtime.RWLock”中的引用是什么

c++ - 单步编译时是否生成目标文件?

Java 处理 2.0(使用 Eclipse): Switching from window to fullscreen and back

ruby - 如何在rp5rc中设置processing_root

java - 在java中获得两组之间对称差异的最佳方法是什么?

java - CXF客户端: How to ignore @WebServiceClient annotation

java - 与提供者和不可变对象(immutable对象)的深度映射

java - JOptionPane错误-乌龟和野兔赛跑

compilation - 在 Mac OS 10.9 上编译 VLCKit

javascript - 对象网格居中