JavaScript에서 밀리초 동안 BIGINT가 필요하기 전에 유니버스가 축소됩니다.
SMALLINT 2¹⁵-1
, INTEGER 2³¹-1
및 BIGINT 2⁶³-1
로 정수를 저장할 수 있습니다. INT
는 너무 작습니다. SMALLINT
는 밀리초가 49.7일에 불과하므로 INTEGER
만 남게 되며 까다로운 부분인 JavaScript 숫자가 나타납니다.The MAX_SAFE_INTEGER constant has a value of 9007199254740991 (9,007,199,254,740,991 or ~9 quadrillion). The reasoning behind that number is that JavaScript uses double-precision floating-point format numbers as specified in IEEE 754 and can only safely represent integers between -2⁵³+1 and 2⁵³–1.
For larger integers, consider using BigInt.
누가 JS에서 bigint를 좋아합니까? 숫자를 사용하기 전에 숫자를 bigint로 변환해야 합니다. API JSON 응답에 bigint를 전달할 수 없으며 까다롭습니다. 이것이 제 팀원이 최근 프로젝트에서 직면한 정확한 문제입니다. 그래서 뭘 할건데?
우리는 예측 가능한 미래에 2⁵³ 밀리초를 절대 초과하지 않을 것이라고 가정할 수 있습니다. 그와 통화하면서 대략적으로 계산을 해보니 우주의 수명인 134억년 이상인 줄 알았는데 키보드를 만져보니 285년밖에 되지 않았다. 427년. 이 숫자는 매우 극적이지만 미래의 사람들이 서비스가 웹 페이지의 날짜를 엉망으로 만드는 이유를 검색하는 코드를 디버깅할 수 있도록 하기에는 충분합니다.
이것이 바로 DrizzleORM에서 bigints 및 bigserials에 대한 구성을 생성한 이유입니다.
bigserial("will_be_number", maxBytes: "max_bytes_53");
bigserial("will_be_bigint", maxBytes: "max_bytes_64");
감사해요!
Reference
이 문제에 관하여(JavaScript에서 밀리초 동안 BIGINT가 필요하기 전에 유니버스가 축소됩니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/_alexblokh/universe-will-collapse-before-you-need-bigint-for-milliseconds-in-javascript-3epb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)