std::numeric_limits::digits10
提供:cppreference.com
< cpp | types | numeric limits
|
|
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
| static const int digits10 |
(C + + 11時まで) | |
| static constexpr int digits10 |
(C + + 11以来) | |
std::numeric_limits<T>::digits10の値は変更せずに型
10(radix)でと切り捨て.
Tで表すことができ、10を底と桁数、つまり、あるいずれかに記載のアクセスこの多くの桁を持つ数値は丸めやオーバーフローのため変更することなく、型Tの値に、バック進数形式に変換することができます。ベースradixタイプの場合、それはdigits(digits-1浮動小数点型の場合)を乗じた値であるlog10(radix)でと切り捨て.
Original:
The value of std::numeric_limits<T>::digits10 is the number of base-10 digits that can be represented by the type
10(radix) and rounded down.
T without change, that is, any number with this many decimal digits can be converted to a value of type T and back to decimal form, without change due to rounding or overflow. For base-radix types, it is the value of digits (digits-1 for floating-point types) multiplied by log10(radix) and rounded down.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[編集] 標準の専門分野
T
|
std::numeric_limits<T>::digits10の値
Original: value of std::numeric_limits<T>::digits10 The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
| /* non-specialized */ | 0 |
| bool | 0 |
| char | std::numeric_limits<char>::digits * std::log10(2) |
| signed char | std::numeric_limits<signed char>::digits * std::log10(2) |
| unsigned char | std::numeric_limits<unsigned char>::digits * std::log10(2) |
| wchar_t | std::numeric_limits<wchar_t>::digits * std::log10(2) |
| char16_t | std::numeric_limits<char16_t>::digits * std::log10(2) |
| char32_t | std::numeric_limits<char32_t>::digits * std::log10(2) |
| short | std::numeric_limits<short>::digits * std::log10(2) |
| unsigned short | std::numeric_limits<signed short>::digits * std::log10(2) |
| int | std::numeric_limits<int>::digits * std::log10(2) |
| unsigned int | std::numeric_limits<signed int>::digits * std::log10(2) |
| long | std::numeric_limits<long>::digits * std::log10(2) |
| unsigned long | std::numeric_limits<unsigned long>::digits * std::log10(2) |
| long long | std::numeric_limits<long long>::digits * std::log10(2) |
| unsigned long long | std::numeric_limits<unsigned long long>::digits * std::log10(2) |
| float | FLT_DIG |
| double | DBL_DIG |
| long double | LDBL_DIG |
[編集] 例
8ビットのバイナリ型は正確に、任意の2桁の10進数を表すことができますが、3桁の10進数256.. 999を表現できない。8ビット·タイプの
digits10の値です2(8 * std::log10(2)2.41である)Original:
An 8-bit binary type can represent any two-digit decimal number exactly, but 3-digit decimal numbers 256..999 cannot be represented. The value of
digits10 for an 8-bit type is 2 (8 * std::log10(2) is 2.41)The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
標準の32ビットIEEE 754浮動小数点型は、それが7桁の小数を(24 * std::log10(2)7.22)を表すことができることを示唆している24ビットの小数部(23ビットが書かれた、暗黙の1)を有し、が、相対丸め誤差が不均一であると7桁でいくつかの浮動小数点値は、32ビット浮動小数点とバックへの変換は生き残れない:最小の正例は、往復の後8.589973e9なり8.589974e9、あるこれらの丸め誤差が超えることはできません。 1表現のビット、および
digits10は6.92(24-1)*std::log10(2)、として計算されます。丸め値6の結果ダウン.Original:
The standard 32-bit IEEE 754 floating-point type has a 24 bit fractional part (23 bits written, one implied), which may suggest that it can represent 7 digit decimals (24 * std::log10(2) is 7.22), but relative rounding errors are non-uniform and some floating-point values with 7 decimal digits do not survive conversion to 32-bit float and back: the smallest positive example is 8.589973e9, which becomes 8.589974e9 after the roundtrip. These rounding errors cannot exceed one bit in the representation, and
digits10 is calculated as (24-1)*std::log10(2), which is 6.92. Rounding down results in the value 6.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[編集] も参照してください
| [静的] |
基数または指定されたタイプの表現で用いられる整数ベース Original: the radix or integer base used by the representation of the given type The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (公共の静的メンバ定数) |
| [静的] |
変更せずに表現することができる radixの桁数を指定します Original: number of radix digits that can be represented without change The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (公共の静的メンバ定数) |
| [静的] |
有効な正規化された浮動小数点値である基数の最小の負のパワーよりも1 Original: one more than the smallest negative power of the radix that is a valid normalized floating-point value The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (公共の静的メンバ定数) |
| [静的] |
有効な有限浮動小数点値である基数の最大の整数乗よりも1 Original: one more than the largest integer power of the radix that is a valid finite floating-point value The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (公共の静的メンバ定数) |