无法从 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],但它用于访问数组,不会吧?否则我如何访问数组?
请帮忙!
谢谢!
有几个可能的选择:
您正在创建一个新的 float 数组,您需要一个 int 大小,map
return 是一个 float 吗?如果是这种情况,map
可能需要进行重大修改。
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
}
}
我有一些这样的代码:
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],但它用于访问数组,不会吧?否则我如何访问数组?
请帮忙!
谢谢!
有几个可能的选择:
您正在创建一个新的 float 数组,您需要一个 int 大小,
map
return 是一个 float 吗?如果是这种情况,map
可能需要进行重大修改。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
}
}