【发布时间】:2016-07-20 17:26:43
【问题描述】:
当我通过 number_to_currency 转换任何数字时,它仅在点后显示两个零。我希望如果数字为 1.000,则应显示三个零,如果数字为 1.00,则显示两个零。
如果数字是 1.0,那么在精度 1t 变为 1.00 后,我希望它保持为 1.0。如果数字是 1.000,它会在精度后变为 1.00,我希望它是 1.000
有可能吗?
【问题讨论】:
-
您的第二句话不清楚:“我希望如果数字为 1.000,则应显示三个零,如果数字为 1.00,则显示两个零。”你这是什么意思?您可以编辑您的问题以包含一些输入示例和您想要的输出吗?您是否尝试过
:precision选项as mentioned in the docs? -
在浮点世界中,1.0、1.00、1.000 都是相同的。你在格式化什么数字?能举出具体的例子吗?
-
您的问题是关于
number_to_currency货币将有 2 个尾随零,因为这是货币格式,如果您只想添加一个美元符号然后就这样做。"$#{number}"。 @tadman 我认为是一个不好的例子,他说的是像 1.1、1.01 和 1.001 这样的数字 -
@engineersmnky 1.001 通常在内部表示为 1.00099999999938238 这样的东西也行不通。
-
@haseeb 这些是数字还是字符串?如果它们是数字,则 1.0 和 1.00 或 1.0000000000000 之间没有区别。小数点后的数字仅在必要时显示,以方便人类。电脑不在乎。有
precisionoption fornumber_to_currency,但必须提前指定。
标签: ruby-on-rails ruby numbers decimal