【发布时间】:2015-10-13 19:44:58
【问题描述】:
我在处理中遇到问题,当我将值(字符串)转换为浮点数时,第一个值是好的,但其余的都是NaN。我找不到解决这个问题的方法。我打印字符串值进行测试。这是正确的,但是在我将其转换为浮点数之后。它将是NaN。
ps:值来自串口,我将我的 Arduino 连接到 Proceesing。
以下是部分代码
while(myport.available() > 0)
{
myString = myport.readString(); //read the string from serial
num = float(myString); // convert the string into float
print(num); // print the num(float), but the first
// value is good, rests are all `NaN` .
//print(myString); // print string, all the values are good
print(' ');
if(myString != null)
{
//num = float(myString);
storeData(myString);
//println(myString);
//print(data[i - 1]);
//println(' ');
delay(1000);
}
}
结果如下
转换完成:
不转换,只打印字符串值
以下是arduino代码
sum = sqrt(Xg*Xg + Yg*Yg + Zg * Zg);
sum *= 10;
sum = (map(sum, 0, 1024, 0, 5000)/10.0);
Serial.println(sum);
delay(100);
【问题讨论】:
-
我认为您需要将字符串中的每个字符转换为浮点数?尝试遍历字符串中的字符,并在每个字符上调用 foat(c)。
-
当您打印出
myString变量时,您确定这就是您所得到的吗?这没有多大意义:所有这些换行符是从哪里来的?您使用的是print()函数而不是println()函数,所以它们都应该是一行。 -
@flutillie 你有这个转换的示例代码吗?如果有,请发帖,谢谢。
-
@KevinWorkman 在 arduino 串口监视器中,
myString值与处理相同。以及换行符。 -
@Peto 我添加了 arduino 代码
标签: java arduino processing