1)For some reason my output for total keeps coming out in a high numbers although the math should result in a small number, it happens even though I'm using setprecision.
2)Also the break in my if statement runs even when the condition aren't met, I'm trying to prevent this.
Line 38 and 41 are wrong. It doesn't work like this.
Just remove line 38.
Line 41: if ( provider != "Vonage" || provider != "Skype" || provider != "Google" || provider != "Tmobile" )
Line 48 doesn't make sense. If you want to multiply a factor depending on the provider you need to write it like so:
1 2 3 4 5
if("Vonage" == provider)
total = some_factor * minutes;
elseif("Skype" == provider)
total = some_other_factor * minutes;
...