计算一个数字的长度

时间:2017-04-02 01:33:23

标签: c++ c++11 c++14 precision

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

2 个答案:

答案 0 :(得分:1)

精确 - 就你所问的意义而言 - 与输出值一样,也是输出流的属性。假设您使用C ++ ostreamofstreamostrstream等)输出,请查找属性ios_base::precisionios_base::width等,或像{{一样流操作符1}}。如果您使用的是C I / O(setprecision等),则答案取决于为sprintf()格式指定的修饰符。

因此获取所寻找值的方法可能是使用您选择的方法(流操作符,格式说明符)将值输出到字符串。然后计算字符串的长度,每个尾随%f减去一个,小数点等。

此外,具有基数2尾数(包括大多数现实世界浮点表示)的浮点变量不能精确地表示任何不是0的整数幂之和的值(存储值是近似值) )。除此之外,这意味着浮点变量无法准确表示0.50.1等值。您无法使用浮点变量精确表示样本值0.0178.23。这就是为什么像你这样的问题的答案取决于变量的输出方式,以及价值本身的部分原因。

答案 1 :(得分:0)

这样做的简单方法是只输入数字作为字符串并使用.length()

#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; 

如果你需要严格要求整数和双精度,那么你必须创建一个数学算法。