This may sound like a trivial question, but I'm having a really hard time trying to figure it out. Basically I'm sending a string from my Android to my PC. All the connection is ok, and the string is transfered successfully. This is the Android code (sends string to computer):

```
  try
  {
    println(scSocket + "");
    if (scSocket!=null) 
    {
    SendReceiveBytes sendReceiveBT = new SendReceiveBytes(scSocket);
    String red = rotZ + " \n";
    byte[] myByte = stringToBytesUTFCustom(red);
    sendReceiveBT.write(myByte);
    }
  }
  catch(Exception e)
  {
    println(e);
  }

```

Where rotZ is what I want to send, it is a "float" value. I need to put the " \n" on the end of the message so that it will be recognized as a full message on the PC. So far so good. Now I want to read this on my PC, which is achieved by:

```
  //BlueTooth
  String lineRead = "";
  try
  {
    lineRead = new String(sampleSPPServer.readFromDevice());
    if(lineRead != null && !lineRead.isEmpty())
    {
      String lineTransf = lineRead.replace("\n", "").replace("\r", "").replace(" ", "").replace("\"", "").trim();
      println("LineTransf: " + lineTransf);
      rotZ += 0.01*(Float.parseFloat(lineTransf));
      println("Zrotation: " + rotZ); //Never gets here, throws and error before...
    }
    else
      rotZ += 0;
  }
  catch(Exception e)
  {
    println("Exception: " + e);
  }

```

Which gives me the error:

```
NumberFormatException: invalid float value: "1.1400002"

```

In my code you can see I check for null, empty, etc. So that's not the problem. I've already tried:

```
  NumberFormat nf = NumberFormat.getInstance(Locale.US);
  rotZ += 0.01*(nf.parse(lineTransf).floatValue());

```

Got the same result... In stackoverflow there is a similar question:
[Here](https://stackoverflow.com/questions/14562014/android-parse-string-longitude-to-float-causes-error)

There is one more strange thing, If I try the code:

```
  for(int i = 0; i < lineTransf.length(); i++)
    println(lineTransf.substring(i,1));

```

I get that the string's length is 19, but it only prints the first two and gives the message:

```
Exception: java.lang.StringIndexOutOfBoundsException: String index out of range: -1

```

Even more strange thing, when I did ctrl-c, ctrl-v on the number "1.1400002" that appears in the console, it only pastes "1" here on stack overflow.
I know that the number is right, but somewhere the conversion is not. I think that's because the string is sent as a byte and read as a String, but how do I solve this problem? Thanks in advance!!