c++ double 保留两位小数

int main(int argc, char **argv)
{
double num1=4446.312341231412312351313,num2;
double TEST=static_cast<int>(num1*100);
num2=TEST/100;
}
为什么num1,和num2都还是4446.312341231412312351313(调试VC++就能发现),不要用输出cout.

第二句用 double TEST=(int) (num1*100); 强制转化为 int, 再 赋 回去。
这样 num2=TEST/100; 就保留十进制两位小数了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-08-08
我用g++编译出来 num2就是只有两位小数啊
你还可以用格式输出:

printf("%.2f",num1);

直接是两位小数字
第2个回答  2013-09-17
我用g++编译出来 num2就是只有两位小数啊
你还可以用格式输出:

printf("%.2f",num1);

直接是两位小数字
第3个回答  2013-09-18
num2=TEST/100;这一句把int转为double了,因为double级别高
相似回答