如何在没有指数表示法的情况下获得字符串形式的浮点数?

9 ruby string floating-point exponent

如何获取不带指数符号的浮点数作为字符串,即以"e-10"或类似结尾的数字?我发现to_s返回带有指数符号的数字。

ms = 1457000.0000000002 % 1000 # => 2.3283064365386963e-10
ms.to_s                        # => "2.3283064365386963e-10"
Run Code Online (Sandbox Code Playgroud)

我想得到"0.0000000002",但我没有得到正确的。

如果我使用上面的示例并进行评估"%f" % ms,我会得到"0.000000",这与"0.0000000002".

小智 2

我认为如果您指定小数位数 (DP) ,它仍然有效%f。以您的示例为例,输出是 的指数,e-10因此如果您将 DP 指定为 10,则输出是准确的。具体如下:

ms = 1457000.0000000002
secs, ms = ms.divmod(1000)
my_answer = '%.10f' % ms
Run Code Online (Sandbox Code Playgroud)

你的输出将是=> "0.0000000002"

  • 谢谢。如果我事先不知道小数位数怎么办? (5认同)