我想写一个函数 double fun(double n);
要让传进去的n变成相反的值输出,比如n是12.34,函数返回43.21,
比如123.456就变成654.321。。。。。。以此类推
请问各位该怎么实现这个函数啊,我先谢谢大家了
#include <sstream> #include <iostream> #include <string> using namespace std; /** * 倒转数值 */ double reverseDouble(double d) { stringstream ss; ss << d; string str, r_str; ss >> str; int len = str.length(); for(int i = len - 1; i >= 0; i--) r_str.push_back(str[i]); ss.clear(); ss << r_str; ss >> d; return d; } template<typename T> T reverse(T t){ stringstream ss; ss << t; string str, r_str; ss >> str; int len = str.length(); for(int i = len - 1; i >= 0; i--) r_str.push_back(str[i]); ss.clear(); ss << r_str; ss >> t; return t; } int main() { double d = 3.14159; cout << d << endl; double r_d = reverseDouble(d); cout << r_d << endl; cout << reverse(33.5f) << endl; return 0; }
我再修改了一下,不再使用strtod这个C函数,全部用C++,此外还加了一个泛型的版本。
简单的方法用反序, 转成字符串排出来,再转回double.
至于用二进制,这个符合排列规则吗?
我再修改了一下,不再使用strtod这个C函数,全部用C++,此外还加了一个泛型的版本。
简单的方法用反序, 转成字符串排出来,再转回double.
至于用二进制,这个符合排列规则吗?