2017-04-02 48 views
0

你好,我想计算一个数字中的数字我的意思是如果我有这个双重78.23这个函数将返回4,如果我有145.123我会得到6.是否有可能做到这一点用C++? 谢谢!计算一个数字的长度

+4

如果您特别使用双打,您将遇到数字无法在基数2中直接表示的问题。基数10中的示例为1/3 - 此数字的长度是多少? – Shaggi

回答

0

这样做的简单的方法是只需输入号码为一个字符串,如果你需要它严格地与整数使用。长度()

#include <iostream> 
#include <string> 
#include <conio.h> 
using namespace std; int main() { 

string number; 

cout << "Enter a number: "; 
cin >> number; 

cout << "length is " << number.length(); 

_getch(); 
return 0; 

,然后加倍,你必须创建一个数学算法。

+0

如果它是双重的呢?它也会计算点数...... – 0xDEFACED

1

精度 - 就您所问的而言 - 与输出值一样,也是输出流的属性。假设您使用C++ ostreamofstream,ostrstream等)进行输出,请查找属性ios_base::precision,ios_base::width等或流操作程序,如setprecision。如果您正在使用C I/O(sprintf()等),则答案取决于为%f格式指定的修饰符。

因此,获得您所寻求的值的方法可能是使用您选择的方法(流操纵器,格式说明符)将值输出到字符串。然后计算字符串的长度,为每个尾部减去一个0,小数点等。

此外,具有基数为2的尾数(其中包括大多数现实世界中的浮点表示)的浮点变量不能准确地表示任何值不是0.5的整数幂的和(存储值是近似值)。除此之外,这意味着浮点变量不能准确表示像0.10.01这样的值。您的示例值78.23145.123不能完全使用浮点变量表示。这就是为什么像你这样的问题的答案取决于变量是如何输出的原因的一部分,就像值本身一样。