保存小数点后两位不用四舍五入
保留小数点后两位不用四舍五入
我想只保留double 的小数点后两位,不要四舍五入。
((int)(dtemp *100))/100.0;这样的话考虑到int范围可能会溢出。
谁有好的办法。
------解决方案--------------------
浮点数这么做没意义。
------解决方案--------------------
printf("%.2f" ,dtemp); ?
------解决方案--------------------
------解决方案--------------------
这样是带四舍五入的。
我想只保留double 的小数点后两位,不要四舍五入。
((int)(dtemp *100))/100.0;这样的话考虑到int范围可能会溢出。
谁有好的办法。
------解决方案--------------------
浮点数这么做没意义。
------解决方案--------------------
printf("%.2f" ,dtemp); ?
------解决方案--------------------
#include <math.h>
double d;
d=floor(d*100.0)/100.0;
------解决方案--------------------
这样是带四舍五入的。
//Round(1.234,2) = 1.23
//Round(1.234,0) = 1.0
//Round(123.4,-1) = 120.0
double Round(double dVal, short iPlaces) {
double dRetval;
double dMod = 0.0000001;
if (dVal<0.0) dMod=-0.0000001;
dRetval=dVal;
dRetval+=(5.0/pow(10.0,iPlaces+1.0));
dRetval*=pow(10.0,iPlaces);
dRetval=floor(dRetval+dMod);
dRetval/=pow(10.0,iPlaces);
return(dRetval);
}
double round(double dVal, short iPlaces) //iPlaces>=0
{
unsigned char s[20];
double dRetval;
sprintf(s,"%.*lf",iPlaces,dVal);
sscanf(s,"%lf",&dRetval);
return (dRetval);
}