21xrx.com
2024-06-03 00:42:00 Monday
登录
文章检索 我的文章 写文章
如何在C++中判断一个小数的位数?
2023-07-08 13:51:48 深夜i     --     --
C++ 判断 小数 位数

在C++中,可以使用各种方法来判断一个小数的位数。下面介绍几种实用的方法。

一、使用字符串

将小数转换为字符串后,通过字符串的函数获取小数部分的长度即可得到小数的位数。

例如:


#include <iostream>

#include <string>

using namespace std;

int main()

{

  double num = 3.1415926;

  string s_num = to_string(num); // 将小数转换为字符串

  int dot_pos = s_num.find("."); // 找到小数点的位置

  int decimal_len = s_num.length() - dot_pos - 1; // 计算小数位数

  cout << "Decimal length: " << decimal_len << endl; // 输出小数位数

  return 0;

}

输出结果为:


Decimal length: 7

二、使用数学运算

通过数学运算,例如循环乘以10,并判断是否能整除该小数,来计算小数的位数。

例如:


#include <iostream>

using namespace std;

int main()

{

  double num = 3.1415926;

  int decimal_len = 0;

  while (num - (int)num) // 循环乘以10,直到小数部分为0

  {

    num *= 10;

    decimal_len++;

  }

  cout << "Decimal length: " << decimal_len << endl; // 输出小数位数

  return 0;

}

输出结果为:


Decimal length: 7

三、使用自定义函数

可以编写一个自定义函数,通过字符串、数学运算等方法来判断小数的位数。

例如:


#include <iostream>

#include <string>

using namespace std;

int get_decimal_length(double num)

{

  string s_num = to_string(num);

  int dot_pos = s_num.find(".");

  return s_num.length() - dot_pos - 1;

}

int main()

{

  double num = 3.1415926;

  int decimal_len = get_decimal_length(num);

  cout << "Decimal length: " << decimal_len << endl; // 输出小数位数

  return 0;

}

输出结果为:


Decimal length: 7

以上是几种在C++中判断小数位数的方法,可以根据实际需要选择合适的方法使用。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复