Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ Dragon4Double()

static void System.Number.Dragon4Double ( double value,
int cutoffNumber,
bool isSignificantDigits,
ref NumberBuffer number )
inlinestatic

Definition at line 1266 of file Number.cs.

1267 {
1268 double num = (double.IsNegative(value) ? (0.0 - value) : value);
1269 int exponent;
1270 ulong num2 = ExtractFractionAndBiasedExponent(value, out exponent);
1271 bool hasUnequalMargins = false;
1272 uint mantissaHighBitIdx;
1273 if (num2 >> 52 != 0L)
1274 {
1275 mantissaHighBitIdx = 52u;
1276 hasUnequalMargins = num2 == 4503599627370496L;
1277 }
1278 else
1279 {
1280 mantissaHighBitIdx = (uint)BitOperations.Log2(num2);
1281 }
1282 int decimalExponent;
1283 int num3 = (int)Dragon4(num2, exponent, mantissaHighBitIdx, hasUnequalMargins, cutoffNumber, isSignificantDigits, number.Digits, out decimalExponent);
1284 number.Scale = decimalExponent + 1;
1285 number.Digits[num3] = 0;
1286 number.DigitsCount = num3;
1287 }
static ulong ExtractFractionAndBiasedExponent(double value, out int exponent)
Definition Number.cs:3510
static unsafe uint Dragon4(ulong mantissa, int exponent, uint mantissaHighBitIdx, bool hasUnequalMargins, int cutoffNumber, bool isSignificantDigits, Span< byte > buffer, out int decimalExponent)
Definition Number.cs:1335
static int Log2(uint value)

References System.Number.Dragon4(), System.Number.ExtractFractionAndBiasedExponent(), System.L, System.Numerics.BitOperations.Log2(), and System.value.

Referenced by System.Number.FormatDouble().