@@ -243,49 +243,58 @@ def number_to_delimited(number, options = {})
243
243
NumberToDelimitedConverter . convert ( number , options )
244
244
end
245
245
246
- # Formats a +number+ with the specified level of
247
- # <tt>:precision</tt> (e.g., 112.32 has a precision of 2 if
248
- # +:significant+ is +false+, and 5 if +:significant+ is +true+).
249
- # You can customize the format in the +options+ hash.
246
+ # Formats +number+ to a specific level of precision.
247
+ #
248
+ # number_to_rounded(12345.6789) # => "12345.679"
249
+ # number_to_rounded(12345.6789, precision: 2) # => "12345.68"
250
+ # number_to_rounded(12345.6789, precision: 0) # => "12345"
251
+ # number_to_rounded(12345, precision: 5) # => "12345.00000"
250
252
#
251
253
# ==== Options
252
254
#
253
- # * <tt>:locale</tt> - Sets the locale to be used for formatting
254
- # (defaults to current locale).
255
- # * <tt>:precision</tt> - Sets the precision of the number
256
- # (defaults to 3). Keeps the number's precision if +nil+.
257
- # * <tt>:round_mode</tt> - Determine how rounding is performed
258
- # (defaults to :default. See BigDecimal::mode)
259
- # * <tt>:significant</tt> - If +true+, precision will be the number
260
- # of significant_digits. If +false+, the number of fractional
261
- # digits (defaults to +false+).
262
- # * <tt>:separator</tt> - Sets the separator between the
263
- # fractional and integer digits (defaults to ".").
264
- # * <tt>:delimiter</tt> - Sets the thousands delimiter (defaults
265
- # to "").
266
- # * <tt>:strip_insignificant_zeros</tt> - If +true+ removes
267
- # insignificant zeros after the decimal separator (defaults to
268
- # +false+).
255
+ # [+:locale+]
256
+ # The locale to use for formatting. Defaults to the current locale.
269
257
#
270
- # ==== Examples
258
+ # number_to_rounded(111.234, locale: :fr)
259
+ # # => "111,234"
260
+ #
261
+ # [+:precision+]
262
+ # The level of precision, or +nil+ to preserve +number+'s precision.
263
+ # Defaults to 3.
264
+ #
265
+ # number_to_rounded(12345.6789, precision: nil)
266
+ # # => "12345.6789"
267
+ #
268
+ # [+:round_mode+]
269
+ # Specifies how rounding is performed. See +BigDecimal.mode+. Defaults to
270
+ # +:default+.
271
+ #
272
+ # number_to_rounded(12.34, precision: 0, round_mode: :up)
273
+ # # => "13"
274
+ #
275
+ # [+:significant+]
276
+ # Whether +:precision+ should be applied to significant digits instead of
277
+ # fractional digits. Defaults to false.
278
+ #
279
+ # number_to_rounded(12345.6789) # => "12345.679"
280
+ # number_to_rounded(12345.6789, significant: true) # => "12300"
281
+ # number_to_rounded(12345.6789, precision: 2) # => "12345.68"
282
+ # number_to_rounded(12345.6789, precision: 2, significant: true) # => "12000"
283
+ #
284
+ # [+:separator+]
285
+ # The decimal separator. Defaults to <tt>"."</tt>.
286
+ #
287
+ # [+:delimiter+]
288
+ # The thousands delimiter. Defaults to <tt>","</tt>.
289
+ #
290
+ # [+:strip_insignificant_zeros+]
291
+ # Whether to remove insignificant zeros after the decimal separator.
292
+ # Defaults to false.
293
+ #
294
+ # number_to_rounded(12.34, strip_insignificant_zeros: false) # => "12.340"
295
+ # number_to_rounded(12.34, strip_insignificant_zeros: true) # => "12.34"
296
+ # number_to_rounded(12.3456, strip_insignificant_zeros: true) # => "12.346"
271
297
#
272
- # number_to_rounded(111.2345) # => "111.235"
273
- # number_to_rounded(111.2345, precision: 2) # => "111.23"
274
- # number_to_rounded(13, precision: 5) # => "13.00000"
275
- # number_to_rounded(389.32314, precision: 0) # => "389"
276
- # number_to_rounded(111.2345, significant: true) # => "111"
277
- # number_to_rounded(111.2345, precision: 1, significant: true) # => "100"
278
- # number_to_rounded(13, precision: 5, significant: true) # => "13.000"
279
- # number_to_rounded(13, precision: nil) # => "13"
280
- # number_to_rounded(389.32314, precision: 0, round_mode: :up) # => "390"
281
- # number_to_rounded(111.234, locale: :fr) # => "111,234"
282
- #
283
- # number_to_rounded(13, precision: 5, significant: true, strip_insignificant_zeros: true)
284
- # # => "13"
285
- #
286
- # number_to_rounded(389.32314, precision: 4, significant: true) # => "389.3"
287
- # number_to_rounded(1111.2345, precision: 2, separator: ',', delimiter: '.')
288
- # # => "1.111,23"
289
298
def number_to_rounded ( number , options = { } )
290
299
NumberToRoundedConverter . convert ( number , options )
291
300
end
0 commit comments