# std::numeric_limits<T>::has_denorm_loss

< cpp‎ | types‎ | numeric limits

static const bool has_denorm_loss; |  | (C++11 前)
static constexpr bool has_denorm_loss; |  | (C++11 起)

std::numeric_limits<T>::has_denorm_loss 的值对于所有检测在创建非正规数时的精度损失为非正规化损失，而非不准确结果（见后述）的浮点类型 `T` 为 true 。

### 标准特化

`T` | std::numeric_limits<T>::has_denorm_loss 的值
/* non-specialized */ | false
bool | false
char | false
signed char | false
unsigned char | false
wchar_t | false
char8_t (C++20) | false
char16_t (C++11) | false
char32_t (C++11) | false
short | false
unsigned short | false
int | false
unsigned int | false
long | false
unsigned long | false
long long (C++11) | false
unsigned long long (C++11) | false
float | 实现定义
double | 实现定义
long double | 实现定义

### 注解

遵从标准的非正规数的 IEEE 754 浮点实现要求若出现关联到创建这种数的精度损失，则检测它，而且可以以二种有别的方式进行：

1. 非正规化损失：产生的结果异于假如指数范围无界的情况下计算出的结果。
2. 不准确结果：产生的结果异于假如指数范围和精度均无界的情况下计算出的结果。

不存在非正规化损失机制的实现（精度损失在舍入后检测为不准确结果），而此选项在 IEEE 标准 754 的 2008 修订版被移除。

libstdc++、 libc++、 libCstd 及 stlport4 为所有浮点类型定义此常量为 false 。 Microsoft Visual Studio 为所有浮点类型定义它为 true 。

同任何浮点计算，精度损失可能引发 FE_INEXACT

### 示例

| 本节未完成 原因：暂无示例

### 参阅

tinyness_before [静态] | 鉴别检测舍入前是否非正规的浮点类型 (公开静态成员常量)
has_denorm [静态] | 鉴别浮点类型所用的非正规风格 (公开静态成员常量)