我有一些这样的代码:
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],但它是用来访问数组的,这不可能吧?否则我如何访问该数组?
请帮忙!
谢谢!
最佳答案
有几种可能的替代方案:
您正在创建一个新的 float 组,并且需要它的 int 大小,
map
是否返回 float ?如果是这种情况,map
可能需要进行重大修改。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/