像谷歌一样将弧度转换为度数
Convert radians to degrees like Google
我试图将弧度转换为度数,但我没有得到与谷歌相同的结果
计算器和Pi i定义的剂量输出所有数字。
如果你在谷歌搜索中键入:(1*180)/3.14159265,那么你会得到57.2957796但我的程序是
输出:57.2958如果你在谷歌搜索Pi,你会得到:3.14159265,但我的
dosent输出其余部分,它输出:3.14159
我的代码是:
#include <iostream>
#define SHOW(X) cout << # X " = " << (X) << endl
using namespace std;
double Pi_test = 3.14159265;
float radian_to_degree(double ENTER) {
double Pi = 3.14159265;
float degrees = (ENTER * 180) / Pi;
return degrees;
}
int main (int argc, char * const argv[]) {
SHOW( radian_to_degree(1) ); // 57.2958 not 57.2957795 like google, why?
SHOW( Pi_test ); // output 3.14159' not 3.14159265, why?
return 0;
}
请帮我解决这个问题,怎么了?有什么例子吗?
您需要更改默认精度:
cout.precision(15);
cout << d << endl;
如前所述,C++中的cout
可能在显示数字之前对其进行了四舍五入
#define SHOW(X) cout << setprecision(some_number) << # X " = " << (X) << endl
更改radian_to_degree
以操作double
而不是float
,因为double
具有更高的精度。
使用std::setprecision
输出结果
#include <iomanip>
std::cout << std::setprecision(9) << result << "n";
即使更改了cout
的精度,也要注意double
只包含这么多数据;如果你希望你的程序能输出1000个小数位,那么double
不会给你那么多。您必须创建自己的数据类型。
此外,除非迫不得已,否则不要定义宏函数。
相关文章:
- 防止主数据类型C++的隐式转换
- 模板参数替换失败,并且未完成隐式转换
- 努力将整数转换为链表。不知道我在这里做错了什么
- HEX值到wchar_t字符(UTF-8)的转换
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将 Qvector<uint8_t> 转换为 QString
- 如何在cuSparse中使用cusparseXcoo2csr从coo转换为csc
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 在c++中使用nlohmann从类到json的转换
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 如何使用OpenCV将RBG图像转换为HSV,并将H、S和V值保存为C++中的3个独立图像
- 复制列表初始化的隐式转换的等级是多少
- 正在将指针转换为范围
- 函数返回动态强制转换的指针,返回指针,就好像它根本没有被转换一样
- 学习 c++11 智能指针,它不会让我像指针一样使用隐式转换吗?
- 像谷歌一样将弧度转换为度数
- 像shared_ptr<T>一样隐式强制转换
- 像本机类型一样,没有隐式转换的整型