Как конвертировать char в float?

0

Я пытаюсь преобразовать два числа символов в float, но я не получаю правильный результат.

char firstnumber = '1';
char secondnumber = '2';
float sum  ;

sum =  ((firstnumber - '0') /(secondnumber - '0'));
cout << sum;

Выход всегда 0, а не 0,5, пожалуйста, просветите меня.

Теги:

2 ответа

6
Лучший ответ

Вы выполняете целочисленное деление, которое усекает результат. Вам нужно добавить приведение типа, чтобы получить по крайней мере один из / операндов быть числом с плавающей точкой.

sum = (float)(firstnumber - '0') / (secondnumber - '0');
  • 0
    От всего сердца благодарю вас, я потратил на это больше получаса.
  • 0
    Там может быть более C ++ - Eye способ сделать это приведение; Я не эксперт в этом деле.
Показать ещё 1 комментарий
3

Когда вы делите два целых числа, вы получаете целочисленное деление. Вы хотите:

sum =  (firstnumber - '0');
sum /= (secondnumber - '0');

(Или какой-то другой способ совершить то же самое.)

  • 0
    Тебе тоже спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню