例如 我定义float h=0.46579;
for(i=0;i<10;i++)
{ n=h*10/1; //n是小数部分第一个数
h=h*10-n; //减掉第一个数,h变为0.6579,再用循环
}
但是 我设置了n的输出 结果是4 6 5 7 8 9 9 9 9
如果h=3.784 结果为7 8 3 9 9 9 9
为什么最后哪个数字就会这样。
求高手简明回答 因为是c++初学, 约等于什么后不会,最好是c语言。
谢了
多谢大家指点 获益匪浅。 但这C题目是做个类似计算器的东西
就是可以吧十进制 二进制 16进制之间可以相互转换
10进制到2进制 16进制都可以
但二进制小数怎么到10进制。。。真想不出来了 我就想把二进制整数,小数分开,分别转成10进制,再加起来。
不知道怎么把二进制数转换成字符类,因为有小数点。
关于C++求小数部分各个位数字问题。
for(i=0;i<5;i++) \/\/小数有多少,就循环多少次,不然,其后的数据又不准确了 { n=h*10; \/\/n是整型,因此,结果会强制转换成整数,不用\/1,没有意义 h=h*10-n; \/\/减掉第一个数,h变为0.6579,再用循环 printf("%d\\n" , n );} ...
C++小数点后保留几位小数?
double 型 用 %.2lf 就是小数2位, %.1lf 就是小数1位。
C++ 求出分数 a\/b 化为小数的前 50 位数字,末位数字无需四舍五入
void main(void){ int a,b,i;cout << "Enter an integer a & b(a> a >> b;cout << "0.";for(i=0;i<50;i++){ cout << a*10\/b;a=a*10%b;} cout << endl;}
c++中,如何取小数点后的前10位
b=a-a%(10e(-10))这样的话,b就是小数点的前10位了 就是用原来的数字a减去a小数点10位以后的数字,就行了```
关于C++小数输出的问题
20\/8=2.5 两个数默认都是int类型 所以结果是2 然后再将结果转换成float类型他也是2 你看你前几个 不论是float(20)还是(float)20都是将数字转换为浮点型进行运算的,所以结果也是浮点型,而本身20默认为int类型,所以你第一个和最后一个20和8都是以int类型进行计算的,最后一个的计算顺序是先算...
[C++]关于显示小数部分的问题
具有很高的不确定信,一个double类型的值变成int类型的值——两个长度都不一样。推荐是使用字符串来保存这样的数字 char num[100];cin>>num;int j;for(int i=0;num[i];i++)if(num[i]=='.'){j=i;break;} cout<<"这个数的小数部分是:";for(int end=j+1;num[i];end++)cout<<...
有关C++小数输出?
这是因为默认的输出是保留6位有效数字。如果你要以n位小数输出,可以这样:1 include<iomanip> 2 int n=8;double d=1.12345678912;\/\/设置成以n位小数输出 cout<<fixed<<setprecision(n);cout<<d<<endl;如:
c++小数点的问题
int val=123456;cout<<val<<"."<<endl;这样难道不是更方便?那样也可以 不过麻烦一点儿 需要调用几个函数 你看一下吧 float a=123456.f;cout.setf(ios_base::showpoint);cout.precision(6);cout<<a<<endl;需要说一下 C++默认带小数点儿的输入是double型 所以要赋值给一个flaot型应该在数字...
c++小数计算后数字变化
就知道的啦 我简单说一下 浮点数 存储的 时候 是先 把 这个 数 转化成 二进制浮点数 , 然后 再用 科学计数法 表示 而 十进制 转化 为 二进制时, 很多数 不能 正好 转化为 与之 相等 的 数,只能 用 其 近似值 表示, 因此 产生 了 误差 在 计算机 学 里, 这就是 精度 问题 ...
c++问题,传入double类型值,获取小数点前后的位数。急。 在线等。 代码...
printf("%.15lf",a); --- 可以输出小数点后15位,就算不指定 printf("%lf",a); ---也有默认小数点后6位输出 你用那cout 和 << 输出实型数,不特别指定格式时,就是默认7位有效数字.对于cout,你会去研究它的特别格式吗?多数人都忽略它们了,我也忽略它的,即使是用C++ 我依旧爱用...