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 đầulittleEndian: Tùy chọn,true= little-endian, mặc địnhfalse- 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