我知道在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/