Loop in C. The first loop in the program doesn't work and is infinite. : i don't understand why the first loop does not work. It is an infinite loop even if the owed float that is filled in is in fact bigger than 0. Why doesn't the loop work?

#import <cs50.h> 
#import <stdio.h>

int main(void)
{
    float owed = -1 ;
    
    while (owed < 0) 
    {
        printf("O hai! How much change is owed?\n") ;
        float owed = GetFloat() ;
        owed = owed * 100 ;
    }
    
    int coins = 0 ;
    
    while (owed >= 25)
    {
        owed = owed - 25 ;
        coins = coins + 1 ;
    }
    
    while (owed >= 10)
    {
        owed = owed - 10 ;
        coins = coins + 1 ;
    }
    
    while (owed >= 5)
    {
        owed = owed - 5 ;
        coins = coins + 1 ;
    }
    
    while (owed >= 1) 
    {
        owed = owed - 1 ;
        coins = coins + 1 ;
    }
    
    printf("%i\n", coins) ;
}