#1 21.10.07 23:14
Товарищи знатоки С++, подсобите....
Немогу вспомнить как пользоваться функцией ROUND в сях, давно ей не пользовался, уже совсем из головы вылетело....
округление надо провести то второго знака после запятой, округляемая величина имеет тип "double"
если можно с коменнтариями плз.
заранее спс.
Offline
#3 22.10.07 00:47
Re: Товарищи знатоки С++, подсобите....
как вариант
Код: cpp:
#include <stdio.h> // val - округляемое число // r - до какого знака округлять (R>0. при R==0 просто отбрасывается дробная часть) double round( double val , int r ) { if (r == 0) return (int)val; char buf[100]; char format[] = "%.#lf"; format[2] = r + '0'; // '#' => 'r' sprintf( buf, format, val ); return atof( buf ); }
Offline
#5 23.10.07 01:47
Re: Товарищи знатоки С++, подсобите....
вот такой способ по идее должен прокатывать:
все имеет тип double
val= val*100; //val- величина которую надо до 2 знака после запятой округлить
r= val%1; //присваиваем остаток от деления
val= (val/100) - r; //возвращаем величину с обрезаным остатком после второго знака после запятой
но вылазит ошибка:
error C2296: '%' : illegal, left operand has type 'double'
в чем проблема?
Offline

