C++程序 将科学计数法转换为十进制
在这里,我们将看到如何使用C ++程序将科学记数法转换为十进制。
例子:
1e9 = 1000000000
1e9 = 1000000000.000000
使用pow(a,b)函数计算幂
使用的头文件: <math.h>
pow也被称为幂函数。在这里,pow(a,b)指的是a的b次方。让我们用一个例子来检查它:
2^3 = 8
pow(2,3)= 8 //与2 ^ 3相同。
例子:
//C++程序实现
//pow函数
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int n = 9;
cout& lt;& lt; "pow(2,9):“& lt;& lt; pow(2,9)& lt;& lt; endl;
cout& lt;& lt; "pow(10,n):“& lt;& lt; pow(10,n)& lt;& lt; endl;
return 0;
}
输出
pow(2,9):512
pow(10,n): 1e +09
在上面的代码中,这里我们计算10的n次幂,因为n是9,所以基本上我们计算了10的9次方。但是这里的输出以科学形式呈现。所以我们将其转换为十进制形式。
如何删除科学记数法?
为了在我们的代码中获得非常精确的答案,我们需要解决科学记数法的问题。科学记数法是pow返回除了十进制或整数以外的一些值的数字,原因是答案太长以至于无法以整数或浮点数显示。
C ++中去除科学记数法的方法。获取更精确的值有两种方法:
- 使用固定值
- 使用setprecision
1.使用固定值将科学数字转换为十进制
Fixed关键字返回到小数点后6位的值。我们不能有那6个精确数字。
例子:
//C++程序实现
//固定函数
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int n = 9;
cout& lt;& lt; "使用pow:“& lt;& lt; pow(10,n)& lt;& lt; endl;
cout& lt;& lt; "使用固定值:“& lt;& lt; fixed& lt;& lt; pow(10,n)& lt;& lt; endl;
return 0;
}
输出
使用pow:1e + 09
使用固定:1000000000.000000
在这里,我们可以看到我们将科学记数法转换为十进制数。但是这样做的问题是我们在小数点后会得到6个零。所以要确定需要小数点后有多少个零,我们可以使用setprecision(x)。
2. 使用setprecision()函数将科学数字转换成十进制数
使用的头文件: <iomanip>
我们可以使用setprecision()设置小数点后的数字位数。
例子:
//C++程序实现
//setprecision()用于
//获得精确值
#include <iomanip>
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int n = 9;
cout& lt;& lt; pow(10,n)& lt;& lt; endl;
cout& lt;& lt; fixed& lt;& lt; pow(10,n)& lt;& lt; endl;
cout& lt;& lt; fixed& lt;& lt; setprecision(4)& lt;& lt; pow(10,n)& lt;& lt; endl;
cout& lt;& lt; fixed& lt;& lt; setprecision(3)& lt;& lt; pow(10,n)& lt;& lt; endl;
cout& lt;& lt; fixed& lt;& lt; setprecision(1)& lt;& lt; pow(10,n)& lt;& lt; endl;
return 0;
}
输出
1e+09
1000000000.000000
1000000000.0000
1000000000.000
1000000000.0