Я писал программу, которая принимает входные данные в долларах от пользователя и преобразует их в целые, которые являются центами. Пользователь всегда будет вводить либо целое число, либо число с плавающей запятой с максимум двумя десятичными знаками. Я хочу преобразовать его в int, умножив на 100. Однако программа не работает для некоторых чисел.
int cents = (dollars*100);
dollars
- это ввод с плавающей запятой, который дает пользователь. Например, если I dollars
= 4,2, cents
становится 419,999. Как я могу исправить эту проблему?
long cents
, чтобы сохранить всю сумму (например, 14000,99 долларов США - это 1400099 центов) и просто печатайте явно доллары и центы всякий раз, когда вы печатаете. Например.long cents = 1400099; printf("You've got $%ld.%02ld\n", cents/100, cents%100);
- person Brandin   schedule 25.01.2014