c++ - 如何反转真实号码的数字?

标签 c++ c algorithm

我知道在c中反转数字(整数)的数字,但我的问题是我们如何反转实数的数字 例如 1200.23 反转为 32.0021

整数代码

#include <stdio.h>

/* Iterative function to reverse digits of num(integer)*/
int reversDigits(int num) 
{
  int rev_num = 0;
  while(num > 0)
  {
    rev_num = rev_num*10 + num%10;
    num = num/10;
  }
  return rev_num;
}

/*Driver program to test reversDigits*/
int main()
{
  int num = 4562;
  printf("Reverse of no. is %d", reversDigits(num));

  getchar();
  return 0;
}

最佳答案

显然你的参数需要是浮点类型。

您可以将 double 型转换为字符串,然后反转字符串,然后再转换回 double 型:

#include <string>
#include <sstream>

template<typename T>
std::string toString(T t)
{
    std::stringstream ss;
    ss << t;
    rteurn ss.str();
}

double reversDigits(double num)
{
    std::string s = std::to_string(num);
    std::reverse(s.begin(), s.end());


    double d;
    std::stringstream ss(s);
    ss >> d;
    return d;
}

关于c++ - 如何反转真实号码的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25445322/

相关文章:

c++ - 测试字符串 vector 中的 int

c - 如何将这个递归函数转换为迭代版本?

c - 我在 MPI 中看不到我的程序有什么问题

C++:组合/多重集函数(阶乘溢出)

c++ - matlab 函数 "imfill(BW,' 孔的有效实现')“在 c++ 中不使用 opencv

php - 将采用数字或单词并找到所有可能组合的算法

c++ - boost::spirit::position_iterator2 的奇怪错误

c++ - 我怎样才能在两点之间进行碰撞检查? (C++)

c - 我如何使用带有 c 字符串输入的 switch ?

c++ - 玩家角色的背景颜色 (@) 与其他方 block 重叠