![]() |
1
103
它返回一个字符串,因为0.1及其幂(用于显示小数部分)在二进制浮点系统中不可表示(至少不具有完全精度)。
例如,0.1实际上是0.10000000000000055511151231257827021181583404541015625,0.01实际上是0.010000000000020816681711721685132943093776702880859375。(感谢
因此(缺少十进制浮点或有理数类型),将其输出为字符串是将其精确剪裁为显示所需精度的唯一方法。 |
![]() |
2
114
要舍入一个数字,您需要执行以下操作:
. 或者如果你想要 本土化的 函数,您可以扩展原型:
但是,请记住,在编写模块时,污染原型被认为是不好的,因为模块不应该有任何副作用。 .
虽然我不太喜欢JSPerf,但这里有一个链接与使用转换(在其他答案中)的方法的比较,这个链接:
|
![]() |
3
104
我通过改变这一点来解决这个问题:
……
但是,这会将数字转换为字符串并再次对其进行分析,这将对性能产生重大影响。如果您关心性能或类型安全,请检查其他答案。 |
![]() |
4
21
为什么不使用
|
![]() |
5
13
当然,它返回一个字符串。如果您想对数值变量进行四舍五入,可以改用math.round()。to fixed的点是用固定的小数位数格式化数字。 供用户显示 . |
![]() |
6
11
我用javascript把它转换回数字来解决这个问题。
|
![]() |
7
3
当它应该格式化一个数字时,您希望它返回什么?如果你有一个数字,你就不能对它做任何事情,因为例如
|
![]() |
8
3
您可以简单地使用“+”将结果转换为数字。
|
![]() |
9
1
因为它的主要用途是显示数字?如果要对数字进行四舍五入,请使用
|
![]() |
10
1
下面是一个稍微更实用的答案版本
|
![]() |
11
0
要提供一个为什么必须是字符串的示例: 如果将1.tofixed(2)格式化,将得到“1.00”。 这与1不同,因为1没有2个小数。 我知道javascript不完全是一个 性能 语言,但是如果你使用如下的方法,你很可能会在四舍五入中获得更好的表现: RoundedValue=数学四舍五入(值*100)*0.01 |
![]() |
Terio · Typescript:使用变量的值创建自定义类型 2 年前 |
![]() |
Kareem Adel · 创建函数类型(TypeScript接口) 2 年前 |
![]() |
MatÄj VondráÄek · 如何在c#方法中传递类型? 2 年前 |
![]() |
kreo · 为什么&[T]参数也接受&Vec? 6 年前 |
![]() |
Jiji · 将简单对象强制转换为简单的通用接口 6 年前 |