将百分比舍入到最接近的整数

Bas*_*Bas 1 javascript

我有一个自己制作的网格系统,我必须计算一列的每个大小.

在每个row拟合12列中.我将在下面给出的每个示例代码都是这种情况.

在计算网格大小的百分比时,这些数字并不总是整数,大多数情况如下:

99.98029427220177
100.01970572779821
100.0146484375
100.009765625
100.01464843750001
100.00976562499999
Run Code Online (Sandbox Code Playgroud)

当我Math.floor在javascript 使用时,我得到这个:

94
96
98
99
98
99
Run Code Online (Sandbox Code Playgroud)

这就是我想要的:

100
100
100
100
100
100
Run Code Online (Sandbox Code Playgroud)

所以全部四舍五入到整个百分比.

Gre*_*g T 6

Math.round(X)

-

例:

Math.round(99.5)== 100

Math.round(99.49)== 99


tay*_*ack 2

有两种方法可以实现此目的。

  1. 如果您只是将值呈现给 DOM,那么您需要的是内置的 JavaScript toFixed() 方法:

在这里我将简要介绍一下:

(99.790980).toFixed() # => "100"
(99.790980).toFixed(1) # => "99.8"
(100.23232).toFixed() # => "100"
(100.23232).toFixed(1) # => "100.2"
Run Code Online (Sandbox Code Playgroud)

大多数时候,这些值被塞进DOM. 在场景下,数字被转换为toString()浏览器将其绘制到屏幕上。这是一个非常简单的内置 API Number。请记住,您将获得 aString作为返回值。如果您想将其转换回类型Number以继续数学,那么您可以使用以下模式:

function preciseMathDotRound(value, precision = 0) {
  return parseFloat(value.toFixed(precision));
}

// preciseMathDotRound(99.919191) == 100
// preciseMathDotRound(99.919191, 1) == 99.9
Run Code Online (Sandbox Code Playgroud)
  1. Math.round 是用于舍入数字的数学 API。API 不包含精度,因此仅四舍五入到最接近的整数。返回值是一个数字。

    数学.round(99.790980) # => 100 数学.round(100.23232) # => 100