Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Phương thức DataView.getFloat64() trong JavaScript

DataView.getFloat64() đọc một số thực 64-bit (double precision, IEEE 754) tại vị trí byte chỉ định. Đây là kiểu số thực chính xác nhất trong JavaScript, tương đương với kiểu number gốc.

Cú pháp

dataView.getFloat64(byteOffset [, littleEndian])
  • byteOffset: Vị trí byte bắt đầu
  • littleEndian: Tùy chọn, true = little-endian, mặc định false
  • Trả về: Số thực 64-bit (double)

Ví dụ cơ bản

const buffer = new ArrayBuffer(20);
const view = new DataView(buffer);

view.setFloat64(1, 654.44);
console.log(view.getFloat64(1)); // 654.44

Sử dụng hằng số Math

const buffer = new ArrayBuffer(20);
const view = new DataView(buffer);

view.setFloat64(1, Math.LOG2E); // log2(e) ≈ 1.442695
console.log(view.getFloat64(1)); // 1.4426950408889634

Đọc vị trí chưa ghi

const buffer = new ArrayBuffer(20);
const view = new DataView(buffer);

view.setFloat64(1); // Không truyền giá trị
console.log(view.getFloat64(1)); // NaN

Độ chính xác Float64 vs Float32

const buffer = new ArrayBuffer(16);
const view = new DataView(buffer);
const precise = 1.1234567890123456789;

view.setFloat64(0, precise);
view.setFloat32(8, precise);

console.log("Float64:", view.getFloat64(0)); // 1.1234567890123457
console.log("Float32:", view.getFloat32(8)); // 1.1234567 (mất chính xác)

Ứng dụng

  • Dữ liệu khoa học, tài chính yêu cầu độ chính xác cao
  • Tọa độ GPS (latitude/longitude)
  • Timestamp độ chính xác cao (microsecond)
  • Định dạng file: GeoTIFF, NetCDF, HDF5

Lưu ý

  • Cần 8 byte từ byteOffset
  • Vị trí chưa ghi trả về NaN (khác với integer trả về 0)
  • Tuân thủ IEEE 754: hỗ trợ Infinity, -Infinity, NaN
  • Endianness ảnh hưởng đến bố cục byte, không ảnh hưởng giá trị logic