Javascript 如何使用JS仅获取长浮点数的整数部分?

Javascript 如何使用JS仅获取长浮点数的整数部分?,javascript,floating-point-precision,Javascript,Floating Point Precision,我知道有 Math.floor parseInt 但是关于这个案例: Math.floor(1.99999999999999999999999999) 返回2时,如何仅获取其整数部分,即等于1?1。99999999999999999999999999999不是数字的实际值。在解析文本后,它的值为2,因为这是JavaScript可以表示的“最佳”值 JavaScript数字是或,允许精度为15到17位有效[十进制]数字-显示的文字需要27位有效数字,这会导致信息丢失 测试:1.9999999

我知道有

  • Math.floor
  • parseInt
但是关于这个案例:

Math.floor(1.99999999999999999999999999)

返回2时,如何仅获取其整数部分,即等于1?

1。99999999999999999999999999999
不是数字的实际值。在解析文本后,它的值为2,因为这是JavaScript可以表示的“最佳”值

JavaScript数字是或,允许精度为15到17位有效[十进制]数字-显示的文字需要27位有效数字,这会导致信息丢失

测试:
1.9999999999999999999999===2
(结果为true)


这里描述了这个问题;有限的相对精度是个问题。

所以我宁愿使用另一种语言?COBOL?@diegoaguilar来做……什么?你使用JavaScript的原因是:)Node.js中的数值分析应用程序API@diegoaguilar有各种各样的库可用于帮助“大数字”或“理性”或“固定精度”然而JavaScript的数字类型不能直接处理这种情况。