我想做标题这样说的:
int number1;
cin>>number1;
num1len=log10(number1)+1;
cout<<"num of digits is "<<num1len<<"\n";
Run Code Online (Sandbox Code Playgroud)
但当数字位数为11时,答案总是如此 7(6+1)
有谁知道为什么或我做错了什么?
浮点数据类型,包括double存储近似值.你通过调用找到的log10是小数点左边的位置数,受近似过程的影响最多.
你问的问题,如何找到存储在二进制浮点数中的数字中的小数位数是没有意义的.该数字7.1有两个十进制数字,但其近似浮点表示根本不使用十进制数字.要保留十进制数字的数量,您需要一些十进制表示,而不是C++ double数据类型.
当然double,根据问题标题,所有这些仅适用于.您的代码段实际上并未使用double.
| 归档时间: |
|
| 查看次数: |
7192 次 |
| 最近记录: |