c++ double数据类型和float有什么不同 7
c++ double数据类型的定义
C++ double 是一种通用数据类型,编译器内部使用它来定义和保存数值数据类型,double(双精度浮点型)是计算机使用的一种资料型别。比起单精度浮点数(float),double(双精度浮点数)使用 64 位(8字节) 来储存一个浮点数。与 float 相比,float 数据类型被认为是单精度。double 数据类型通常是 float 的两倍大小,因此被认为是双精度。
语法:
C++ double 数据类型的语法表示如下:
double var_name;
此处的数据类型是 double 后跟变量名称,在此语法中为 var_name。此外,可以考虑以以下方式使用一系列 var_name 来优化代码表示:
double var_name;double var_name1, var_name2, var_name3…...var_nameN
double 数据类型如何在 C++ 中工作?
- double 类型数据类型主要可以容纳 15-16 位的值,这是一种 64 位浮点数据类型,因此可以按照上述的十进制值声明和初始化时的格式进行排列。
- c++ double范围可以从 0 × 10 −345到 1.7 × 10 308 的值变化
- 有时,与采用值并可以容纳很多浮点值的浮点数相比时会产生误解,但是当考虑到优化和速度时,程序员会选择双精度值。
- 当需要处理一个巨大的十进制数时,首选使用双数据类型。
例子
让我们讨论 C++ Double 的例子。
示例#1
该程序演示了 double 关键字的 C++ 程序,用户希望在该程序中将摄氏温度转换为华氏温度,如输出所示。
代码:
#include <iostream>
using namespace std;
int main()
{
double c_tmp, f_tmp;
cout << "Take an input in celsius and then convert it into some value: ";
cin >> c_tmp;
f_tmp = (c_tmp * 1.8) + 32;
cout << "Temperature in Fahreinheit: " << f_tmp;
return 0;
}
输出 :
示例#2
该程序演示了两个数字的加法、乘法和除法,并提供输出,其中两个输入数字的类型均为 double,如输出所示。
代码:
#include <iostream>
using namespace std;
int main()
{
double n_1, n_2;
cout<<"First_Number to be entered as a double type: ";
cin>>n_1;
cout<<"Second_Number to be entered as a double type: ";
cin>>n_2;
cout<<"Sum of both the numbers entered: "<<(n_1+n_2);
cout<<" Product or multiplication of both the numbers entered: "<<(n_1*n_2);
cout<<" Result_for division of two numbers: " <<(n_1/n_2);
return 0;
}
输出:
示例#3
该程序演示了函数重载,其中考虑两个整数的函数被包含两个参数为 double 的数据类型的函数覆盖,如输出所示。
注意:该函数都有整数和双精度值作为用户输入以获得以特定格式显示的结果。
代码:
#include <iostream>
using namespace std;
int sum_num(int, int);
double sum_num(double, double);
int main(){
int n_1, n_2, p;
double n_3, n_4, q;
cout<<" Two Integer_numbers: ";
cin>>n_1>>n_2;
cout<<"Rslt: "<<sum_num(n_1, n_2)<< endl;
cout<<" Two double_numbers: ";
cin>>n_3>>n_4;
cout<<"Rslt: " <<sum_num(n_3, n_4)<< endl;
}
int sum_num(int p, int q){
return p+q;
}
double sum_num(double p, double q){
return p+q;
}
输出:
示例 #4
该程序演示了一个二次方程: x 2 -4.0500000 x + 2.999999 = 0,其中根只是四舍五入为 10 位有效数字,根值为 , r 1 = 4.056785645 和 r 2 = – 6.0089767987。输出如下所示。
代码:
#include <stdio.h>
#include <math.h>
void doubl_sol(double p, double q, double r)
{
double d_b = q*q - 8.0*p*r;
double sol_d = sqrt(d_b);
double r_1 = (-q + sol_d) / (4.0*p);
double r_2 = (-q - sol_d) / (4.0*p);
printf("%.8f\t%.8f\n", r_1, r_2);
}
void flt_sol(float p, float q, float r)
{
float d_b = q*q - 4.0f*p*r;
float sol_d = sqrtf(d_b);
float r_1 = (-q + sol_d) / (6.60f*p);
float r_2 = (-q - sol_d) / (8.0f*p);
printf("%.8f\t%.8f\n", r_1, r_2);
}
int main(void)
{
float f_a = 1.02f;
float f_b = -4.0500000f;
float f_c = 2.99999f;
double d_a = 3.0;
double d_b = -6.0000000;
double d_c = 3.9989999;
flt_sol(f_a, f_b, f_c);
doubl_sol(d_a, d_b, d_c);
return 0;
}
输出:
在 C++ 中使用 Double 的规则和规定?
在 C++ 中使用 double 作为数据类型时没有特定的规则和规定,但仍然需要遵循一些规则和规定,这将有助于在 C++ 中使用 double 时使代码在使用方面更易于理解和通用:
- double 数据类型的精度应该是 float 数据类型的 2 倍,这意味着与具有 7 个十进制数字的 float 数据类型相比,它应该具有 15 个十进制数字的精度。
- 15 位十进制数的结构格式按以下方式计算,其中 double 有 52 个尾数位和 +1 个隐藏位,如 (log 2^53) / log(10) = 15.95 位。(这意味着大约 15 到 16 位数字)。
- 使用浮点数据类型时,在这种情况下,当经常使用计算和重复值时,精度会出现很大的截断误差。
- float 的最大值是 3e38,但 double 大约是 1.7e308,因此证明舍入误差不像使用 float 那样精确,但有时并不总是如此。
结论
C++ double 数据类型在用于处理大量十进制数字时具有其自身的重要性和意义。它还利用数字和尾数的内部计算进行精密制作。尽管当编译器的计算需要更快和更高效时使用浮点数,但仍有许多程序员选择双精度数,因为它在需要时提供与十进制相关的值作为返回类型。
推荐文章
这是 C++ Double 的指南。在这里,我们分别讨论了双数据类型在 C++ 中的定义和工作原理以及示例和规则。
本教程是C++入门教程系列的一部分,您也可以查看以了解更多信息 –
常见问题FAQ
- 程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
- 请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!