2015-04-28 68 views
1

我有一些像这样的代码:不能从浮转换为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))]; 
    } 
} 

的最后一行代码导致的问题,我编译时得到“不能从浮到int转换”。

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

请帮忙!

谢谢!

+1

什么是map方法? –

+0

你能在编译时看到实际的错误行吗? – Blip

+0

你可以发布完整的'drawPlot()'方法吗?你显示的是缺少重要的声明,比如'itemPriceScaled'和'map()'的声明。 – QuantumMechanic

回答

1

有几种可能的选择:

  1. 您正在创建一个新的int数组,你需要一个int的大小呢,确实map返回浮点?如果是这种情况,map可能需要重大修改。

  2. map需要什么样的参数? itemPrice [i],dataMin和dataMax都是浮动的(高度也可以),这是正确的吗?在这种情况下,强制转换为(INT)可能足以或你的函数原型需要固定...

请为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 
    } 
} 
+0

的地图的方法是在这里: https://processing.org/reference/map_.html 地图(值,启动1,停止1,START2,停止2 )。参数\t 值\t浮动:要被转换进入的值 启动1 \t浮动:下界的值的电流范围 STOP1 \t浮子:上限的值的电流范围的 START2 \t浮动:下界的值的目标范围 的stop2 \t float:值的目标范围的上限 返回\t float – superquack

+0

它返回一个浮点数,你不能用它来给数组的大小(例如一个数组有1.5个元素??),你确定这是什么你想要做什么?我在编辑我的答案。 –

+0

user43250937我很抱歉我的问题措辞不好。我看到你做了什么,这真的很聪明,错误消失了。但是,由于某些原因,地图功能没有达到我的预期。我试图解决这个问题,itemPrice [0]是11.29,所以在0到600范围内(高度是700,原始范围是0.6到58.4),itemPriceScaled [0]应该在117左右。相反,我得到NaN的。对于itemPrice [1] = 39.63,itemPriceScaled [1]是600.我再次感到困惑= /我吮吸。 – superquack