There are ways to more nicely format screen output for Ruby. Typically, we will create a statement that will tell Ruby to format output into columns of specified sized. We can also use tabs to align the columns. Below is an example of code to nicely-formatted output.
The trick to nicely-formatted output is to create a string expression with formatting information. Below, that expression is to the right of the periodstring
variable. Here is what each part does:
- %2d produces a fixed number column with a width of 2.
- \t tabs the output to the right.
- %11.3f creates a floating number column that is eleven characters wide with three digits after the decimal place.
The puts sprintf
code then prints the variables to its right using the format expression. Note: the number of columns in the expression must match the number of variables after sprintf
.
[code lang=”ruby”]
# display variables with type conversions
per = period.to s
lin = lineargrowth . to s
exp = exponentialgrowth . to s
periodstring = (”%2d\t\t%11.3f\t\t%1.3f”)

puts sprintf periodstring , per , lin ,exp
[/code]
It can be difficult to fit the full variable names after the sprintf command without going to another line. So short versions of the variable names are created, such as
[code]per[/code]
,
[code]lin[/code]
and
[code]exp[/code]
.
The above code will produce output in formatted, consistently-spaced columns.