typestar

Tipos numéricos en Delphi

Un observatorio cuenta fotogramas, suma bytes y mide una exposición en segundos.

program NumbersTypes;
uses SysUtils;

var
  Frames: Integer;
  TotalBytes: Int64;
  Exposure: Double;
  LongEnough: Boolean;
begin
  Frames := 1440;
  TotalBytes := Int64(Frames) * 3000000;  // widen before multiplying
  Exposure := 7 / 2;                      // / always yields a Double
  LongEnough := Exposure > 3;
  WriteLn(Format('frames %d, bytes %d', [Frames, TotalBytes]));
  WriteLn(Format('7 div 2 = %d, 7 / 2 = %.1f', [7 div 2, Exposure]));
  // Round picks the nearest whole number, Trunc drops the fraction.
  WriteLn(Format('round %d, trunc %d', [Round(Exposure), Trunc(Exposure)]));
  WriteLn('long enough: ', LongEnough);
end.

Cómo funciona

  1. Int64(Frames) * 3000000 amplía el tipo primero, así que el producto no desborda Integer.
  2. 7 div 2 da 3, mientras que 7 / 2 produce el Double 3.5.
  3. Round(Exposure) devuelve 4 y Trunc(Exposure) descarta la fracción.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
19
Caracteres a escribir
617
Tokens
116
Ritmo de tres estrellas
75 tpm

Al ritmo de tres estrellas de 75 tokens por minuto, este intento toma unos 93 segundos.

Escribe este fragmento

Paso 1 de 3 en Tipos y cadenas; paso 4 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →