【发布时间】:2018-09-29 14:00:54
【问题描述】:
我有各种长数字,我正在尝试编写一个函数来正确格式化它们。有人可以帮帮我吗?
我已经尝试过“number_format()”和“round()”,但这并不能解决我的问题..
我想像下面这样四舍五入:
1024.43 --> 1,024.43
0.000000931540 --> 0.000000932
0.003991 --> 0.00399
0.3241 --> 0.324
1045.3491 --> 1,045.35
这意味着,如果数字大于“0”,则应四舍五入到小数点后 2 位并添加千位分隔符(如 6,554.24),如果数字小于“1”,则只要数字出现在零之后,则应四舍五入为 3 位(例如 0.0003219 到 0.000322 或 0.2319 到 0.232)
编辑: 这同样适用于“-”值。例如:
-1024.43 --> -1,024.43
-0.000000931540 --> -0.000000932
-0.003991 --> -0.00399
-0.3241 --> -0.324
-1045.3491 --> -1,045.35
【问题讨论】:
-
@MadhurBhaiya 不,因为这个问题是有效数字,这意味着
111变成了110,这是OP 不想要的。 OP 的数字格式似乎是一种非常独特和专业的格式,我无法理解他为什么需要它:) -
@Davіd 我们可以轻松地使用该函数并在 number > 0 和 number >0 的情况,
number_format就足够了;否则描述的自定义函数 -
你自己有什么尝试吗?请发帖
-
我认为这个问题将小于和大于 1 的数字分开,而不是 0。我说的对吗?
-
@MadhurBhaiya 所以你承认这不是完全重复的吗?此外,关于重复的进一步阅读:meta.stackexchange.com/questions/10841/… “如果问题具有相同(潜在)答案,则它们可能是重复的。这不仅包括逐字重复,还包括相同的用不同的语言表达的想法。”
标签: php math numbers format rounding