Trouble displaying temperature on 1602 LCD solved

This project is one of those thermal flashlight/camera/photography derivatives that uses a mlx90614 datasheet: https://www.sparkfun.com/datasheets/Sensors/Temperature/MLX90614_rev001.pdf to detect temperature and a 16x2 LCD datasheet:https://www.sparkfun.com/datasheets/LCD/ADM1602K-NSW-FBS-3.3v.pdf to display it. Along with a lightboard to display color changing light based on the temperature. This is on an Arduino UNO.

The problem I’m having is printing the (fahrenheit) temp value to the LCD. The way the code sits now a letter is printed, “I” at about room temp which goes down (J,K,L etc) as temp increases and up as temp decreases. How do I change it to a number?

Code is attached

//Filename: light_lcd_code
//Takes compared value from temp sensor, converts it to  HSV and then to a RGB to allow a smooth tranisition between colors outputs on 9,10,11 PWM pins as 0-255 number.
//Prints Tempt value on 16x2 LCD
//Version 1.3
//publiclaboratory, jpb
// downloaded sept 05 2013 
//changed output range to fit 0-140 degree requirement and color interager value sept 8 
// cleared unused code sept 15 2013
// LCD function added sept 19 2013
//http:publiclaboratory.org/tool/thermal-camera
#include <LiquidCrystal.h> 
#include <i2cmaster.h>
#include "Wire.h"
const float lowReading = 60;
const float highReading = 120;
const unsigned char separatorCharacter = 255;
// initialize the library with the numbers of the interface pins
//12=RS,13=E,5=D4,4=D5,3=D6,2=D7
LiquidCrystal lcd(12, 13, 5, 4, 3, 2);
byte degreesymbol[8] = { //shape of degree symbol using binary 
 B11100, 
 B10100, 
 B11100,
 B00000,
 B00000,
 B00000,
 B00000,
 B00000
};
void setup(){
  pinMode(9,OUTPUT); //red
  pinMode(10,OUTPUT); //green
  pinMode(11,OUTPUT); //blue
  Serial.begin(9600);
  i2c_init(); //Initialise the i2c bus
  PORTC = (1 << PORTC4) | (1 << PORTC5);//enable pullups analog pins 4and5
  lcd.begin(16,2); // 16x2 LCD datasheet https://www.sparkfun.com/datasheets/LCD/ADM1602K-NSW-FBS-3.3v.pdf
  lcd.createChar(1, degreesymbol);// create character from binary above use lcd.write(1) to call
}
float normf(float x, float low, float high) {
  float y = (x - low) * 255.f / (high - low);
  if(y > 255) {
    y = 255;
  }
  if(y < 0) {
    y = 0;
  }
  return y;
}
void loop(){
  int dev = 0x5A<<1;
  int data_low = 0;
  int data_high = 0;
  int pec = 0;
  i2c_start_wait(dev+I2C_WRITE);
  i2c_write(0x07);
  // read
  i2c_rep_start(dev+I2C_READ);
  data_low = i2c_readAck(); //Read 1 byte and then send ack
  data_high = i2c_readAck(); //Read 1 byte and then send ack
  pec = i2c_readNak();
  i2c_stop();
  //This converts high and low bytes together and processes temperature, MSB is a error bit and is ignored for temps
  double tempFactor = 0.02; // 0.02 degrees per LSB (measurement resolution of the MLX90614)
  double tempData = 0x0000; // zero out the data
  int frac; // data past the decimal point
  // This masks off the error bit of the high byte, then moves it left 8 bits and adds the low byte.
  tempData = (double)(((data_high & 0x007F) << 8) + data_low);
  tempData = (tempData * tempFactor)-0.01;
  float celcius = tempData - 273.15;  
  float fahrenheit = (celcius*1.8) + 32;
  float state = normf(fahrenheit, lowReading, highReading);
// Regular ol' RGB LED:
  int hue = map(state,0,255,359,(359*0.5)); // not the whole color wheel
  setLedColorHSV(hue,1,1); //We are using Saturation and Value constant at 1
  // LCD display
  lcd.setCursor(0,0);
  lcd.write(fahrenheit);
}
//Convert a given HSV (Hue Saturation Value) to RGB(Red Green Blue) and set the led to the color
//  h is hue value, integer between 0 and 360
//  s is saturation value, double between 0 and 1
//  v is value, double between 0 and 1
//http://splinter.com.au/blog/?p=29
void setLedColorHSV(int h, double s, double v) {
  //this is the algorithm to convert from RGB to HSV
  double r=0; 
  double g=0; 
  double b=0;
  double hf=h/60.0;
  int i=(int)floor(h/60.0);
  double f = h/60.0 - i;
  double pv = v * (1 - s);
  double qv = v * (1 - s*f);
  double tv = v * (1 - s * (1 - f));
  switch (i)
  {
  case 0: //red
    r = v;
    g = tv;
    b = pv;
    break;
  case 1: //green
    r = qv;
    g = v;
    b = pv;
    break;
  case 2: //green
    r = pv;
    g = v;
    b = tv;
    break;
  case 3: //blue
    r = pv;
    g = qv;
    b = v;
    break; //blue
  case 4:
    r = tv;
    g = pv;
    b = v;
    break;
  case 5: //red
    r = v;
    g = pv;
    b = qv;
    break;
  }
  //set each component to a integer value between 0 and 255
  int red=constrain(255-(int)255*r,0,255);
  int green=constrain(255-(int)255*g,0,255);
  int blue=constrain(255-(int)255*b,0,255);
  setLedColor(red,green,blue);
}
//Sets the current color for the RGB LED
void setLedColor(int red, int green, int blue) {
  analogWrite(9,red); //Red pin attached to 9
  analogWrite(10,green); //green pin attached to 10
  analogWrite(11,blue); //blue pin attached to 11
}

Sorry for the amount of seemingly irrelevant code; I think the issues are somewhere around lines 19 71 77 78
The light code is from public library and some of it is unused, the light portion operates as it should.

Thanks in advance. You people are the best.

change lcd.write to lcd.print

You are fo sho the coolest. I'm glad it was that easy. Thanks abunch.