Как в си вывести/выделить значения после запятой (float) и представить в десятичной форме с округлением до 2 знаков? Есть ли что готовое, а то неохота всякие там мантиссы считать.
Demeny
Mar 30 2012, 06:45
Код
float d = 34.76843; float result; d = d - (int)d; /* в d имеем 0.76843 */ result = (float)((int)(100.0 * d + 0.5)) / 100.0; /* в result имеем 0.77 */
andron86
Mar 30 2012, 06:53
Цитата(Demeny @ Mar 30 2012, 08:45)
Код
float d = 34.76843; float result; d = d - (int)d; /* в d имеем 0.76843 */ result = (float)((int)(100.0 * d + 0.5)) / 100.0; /* в result имеем 0.77 */
это понятно, но мне нужно 77 а не 0.77
arexol
Mar 30 2012, 06:57
Цитата(andron86 @ Mar 30 2012, 09:53)
это понятно, но мне нужно 77 а не 0.77
77 = 0.77*100
andron86
Mar 30 2012, 07:02
Цитата(arexol @ Mar 30 2012, 08:57)
77 = 0.77*100
мда, это наверное пятница
редактор
Mar 30 2012, 07:02
преобразовать к целочисленному значению и вычесть. Либо покопаться в стандартных библиотеках.
Demeny
Mar 30 2012, 09:44
Цитата(andron86 @ Mar 30 2012, 10:53)
это понятно, но мне нужно 77 а не 0.77
Это же в корне меняет дело ...
Код
float d = 34.76843; int result = (int)(100.0 * d + 0.5) % 100; /* в result имеем 77 */
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.