强制Ruby不以标准格式/科学记数法/指数表示法输出浮点数

wrh*_*all 5 ruby

我有同样的问题,发现这里的蟒蛇,但红宝石.

我需要输出一个这样的小数:0.00001,而不是1e-5.

有关我的特定问题的更多信息,我正在使用输出到文件 f.write("My number: " + small_number.to_s + "\n")

对于我的问题,准确性并不是一个大问题,所以只需要做一个if语句来检查small_number <1e-5然后打印0是否正常,它看起来并不像它应该的那样优雅.

那么更普遍的方法是什么呢?

pjs*_*pjs 8

f.printf "My number: %.5f\n", small_number
Run Code Online (Sandbox Code Playgroud)

您可以用您喜欢的任何特定格式大小替换.5(小数点右边的5位数),例如,%8.3f将是小数点右边三位的总共8位数,非常类似于C/C++ printf格式字符串.


Dan*_*Tao 6

如果您总是想要5位小数,则可以使用:

"%.5f" % small_number
Run Code Online (Sandbox Code Playgroud)