【发布时间】:2017-01-14 06:33:58
【问题描述】:
相当简单的问题,但我知道我必须澄清一下 - 我不是在谈论进行任何类型的操作。
我有一些货币值和其他十进制值需要处理。将它们存储为浮点数是否安全,当需要进行任何类型的操作时,将它们转换为整数,然后再返回浮点数(假设我可以处理小数位)。我理解使用浮点数进行数学运算时的精度错误,但是为了便于使用而简单地存储它们有什么明显的危险吗?
【问题讨论】:
-
JavaScript 中的每个数字不都是双精度数吗?
-
javascript 有一种类型的数字...数字...这是一个 64 位浮点数...除非您使用 Int8Array、Uint8Array、Int16Array、Uint16Array、Int32Array、Uint32Array 或 Float32Array 当然
-
我会说这很安全,但是,我想知道 javascript 是如何从操作中获得浮点精度的。例如,stackoverflow.com/questions/588004/… 在 python 中你会得到这样奇怪的东西。所以
if(a+b == 0.3)可能是个问题。 -
@AshwinGupta 这就是在操作之前转换为 int 背后的全部想法,我只是想确保除了存储之外什么都不做是完全安全的。
-
@Thirk 哦,在这方面你应该没问题。请记住,
==检查等效性,===检查类型和等效性。
标签: javascript floating-point integer