syn*_*tic 2 javascript formatting json types currency
基本上我在考虑浮点数或字符串.
字符串:
"10.00"
"10.05"
"10.50"
"1,000"
Run Code Online (Sandbox Code Playgroud)
浮点数
10
10.05
10.5
1000
Run Code Online (Sandbox Code Playgroud)
我喜欢字符串的格式化,浮点数限制精度可能存在问题.
你会选择什么?为什么?
你永远不应该使用float/double来赚钱.原因是他们在处理钱时没有按照你的意愿行事.
简单的例子,我得到10美分,然后我得到另外10美分然后我买20美分的东西.剩下多少钱?(使用交互式python提示来说明)
>>> 0.1 + 0.1 - 0.2 == 0
True
Run Code Online (Sandbox Code Playgroud)
现在让我们用3角钱尝试相同的东西并购买30美分的东西:
>>> 0.1 + 0.1 + 0.1 - 0.3 == 0
False
Run Code Online (Sandbox Code Playgroud)
原因当然是float/double类型不能完全代表所有值.当您操纵数字时,您可能会累积错误,以便它实际上变得明显.所有使用float/double的编程语言在某种程度上都存在这个问题.
你最终会通过实现名为"isAlmostZero"和"isCloseTo"的函数或其他一些愚蠢来修复错误.是的,我一直在使用这样的系统.
这个链接也有一些关于float/double是个坏主意的解释.
现在,如果您可以将它们作为浮点数放在JSON中而不是在编程语言中将它们转换为float/double,那么它可能没问题,但是你仍然没有使用float/double作为数据类型,只是看起来像它并转化为不同的东西.我想大多数JSON解析器只会将其转换为浮点值,如果您以这种方式输入它.
| 归档时间: |
|
| 查看次数: |
1319 次 |
| 最近记录: |