C++ 中 double、 long double、long 和 long long

double 属于浮点类型,具体为双精度浮点类型,通常为 IEEE-754 64 位浮点类型。

long double 也属于浮点类型,具体为扩展精度浮点类型,其精度不低于double,具体由编译器和硬件平台决定,比如在x86架构的平台上,大多数C编译器以80位扩展精度类型实现long double。而在Solaris/SPARC机器上,编译器以128位四倍精度类型实现long double。

long 属于整数类型,目标类型至少有32位宽度。

long long属于整数类型,目标类型至少有64位宽度。

 

ref: https://en.wikipedia.org/wiki/Long_double

      https://stackoverflow.com/questions/3454576/long-double-vs-double

      https://zh.cppreference.com/w/cpp/language/types

 

转载于:https://www.cnblogs.com/zhouleyuan/p/10769374.html

### C++ 中 `double`、`long` `float` 类型的区别与用法 #### 数据范围精度 - **`float`**: 这是一个单精度浮点数类型,通常占用 4 字节内存。其有效位数大约为7位十进制数字,可以表示的数值范围大致是从 \( \pm 1.2 \times 10^{-38} \) 到 \( \pm 3.4 \times 10^{38} \)[^3]。 - **`double`**: 双精度浮点数类型,一般占用了8字节空间,在大多数平台上提供了更高的精度以及更宽泛的有效值域,能表达约15到16位有效的十进制数字,覆盖范围约为\( \pm 2.3 \times 10^{-308} \)至\( \pm 1.7 \times 10^{308}\)。 - **`long`**: 整形数据类型之一,默认情况下长度依赖于编译器环境;对于现代计算机而言通常是4或8个字节大小。它可以存储较大的整数值而不会丢失任何信息。 #### 使用场景示例 当涉及到需要高精度计算的任务时(比如科学仿真),应该优先考虑使用`double`而不是`float`因为前者具有更好的准确性。而对于只需要较低精度的应用程序,则可以选择效率较高的`float`来节省资源消耗。至于`long`, 主要用于处理大整数运算而不必担心溢出问题。 ```cpp #include <iostream> using namespace std; int main(){ // 定义不同类型的变量并初始化它们 float fValue = 123456.789f; double dValue = 123456789.123456789; long lValue = 123456789L; cout << "Float value: " << fValue << endl; // 输出浮点数 cout << "Double value: " << dValue << endl; // 输出双精度浮点数 cout << "Long integer: " << lValue << endl; // 输出长整形 return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值