c++小数点的问题

来源:百度知道 编辑:UC知道 时间:2024/06/12 02:35:27
float val=123456.
怎样显示出小数点 而不显示后面的零??
是c++
我要的输出结果是 123456. 要有小数点 但是没有后面的0
老师这样要求的 要是int我就不来提问了 呵呵

如:%m.nf,m代表输出数据占有的最小列宽,小数点也要算进去。n代表小数点后面的位数。具体的说如:%8.2指数据输出至少要占8列,其中小数点后保留两位。

然而%.2f, 不指定输出最小列宽,即数据是多少就原样输出,不会补空格,小数点后保留两位。输出12.46。要求保留六位小数, 用out最后一位是不会四舍五入.

如果只是想要一个小数点儿的话干嘛不直接定义成int型?
int val=123456;
cout<<val<<"."<<endl;
这样难道不是更方便?

那样也可以 不过麻烦一点儿 需要调用几个函数 你看一下吧

float a=123456.f;
cout.setf(ios_base::showpoint);
cout.precision(6);
cout<<a<<endl;

需要说一下 C++默认带小数点儿的输入是double型 所以要赋值给一个flaot型应该在数字后面加f

printf("%.0f.",val);
或printf("%d.",val);
是啊 在%.0f后面再加个‘.’就是了
我测试过了printf("%.0f.",val);是可以的

printf("%d.",val);加个强制转换就行了,改成:

printf("%d.",(int)val);

1楼的方法是不行的
printf("%.0f.",val);//这个会显示成:123456.000000
或printf("%d.",val); //这个会显示成:0.

需要这么做:
#include<stdio.h>
#include<conio.h>

int main()