EEPROM write and check sketch doesn't work well mixing float and bytes

I made a code to write alternating byte and float variables using the EEPROM.get and EEPROM.put methods with fixed indexes to check the memory size occupied by these variables.
I noticed that when I write a float in address 2 and a byte in 6 the verification process tells me that the byte read in 6 is not the same as I wrote. When I check it in address 7 I get the correct value.
Then I doubt the float data type is 4 bytes or 5 bytes.
The code segment related to the EEPROM is this:
byte a=50;
float b=3.2f;
byte a_read6=0;
byte a_read7=0;
...
EEPROM.put(2,b);
EEPROM.put(6,a);
...
EEPROM.get(6,a_read6);
EEPROM.get(7,a_read7);
if(a_read6==a)
digitalWrite(13,1);//this get low on runtime
if(a_read7==a)
digitalWrite(12,1);//this get high on tuntime, so i think float size is 5 bytes

I appreciate the help in advance.

You are doing something wrong. Perhaps there is existing data in the eeprom or there is something wrong with your led indicators. This sketch demonstrates that the data is in the correct places, and that a float is 4 bytes.

#include <EEPROM.h>
void setup() {
  Serial.begin(115200);
  //place known data in eeprom
  for (byte i = 2; i < 8; i++)
  {
    EEPROM.write(i, 0xff);
  }
  for (byte i = 2; i < 8; i++)
  {
    Serial.println(EEPROM.read(i), HEX);
  }
  byte a = 50;
  float b = 3.2f;
  byte a_read6 = 0;
  byte a_read7 = 0;
  EEPROM.put(2, b);
  EEPROM.put(6, a);
  EEPROM.get(6, a_read6);
  EEPROM.get(7, a_read7);
  if (a_read6 == a)
    Serial.println("a_read6 == a");
  if (a_read7 == a)
    Serial.println("a_read7 == a");

  for (byte i = 2; i < 8; i++)
  {
    Serial.println(EEPROM.read(i), HEX);
  }
}

void loop() {}

I'll check my sketch again. Thank for the code demonstration.