@@ -85,6 +85,8 @@ def number_to_phone(number, options = {})
85
85
# (defaults to current locale).
86
86
# * <tt>:precision</tt> - Sets the level of precision (defaults
87
87
# to 2).
88
+ # * <tt>:round_mode</tt> - Determine how rounding is performed
89
+ # (defaults to :default. See BigDecimal::mode)
88
90
# * <tt>:unit</tt> - Sets the denomination of the currency
89
91
# (defaults to "$").
90
92
# * <tt>:separator</tt> - Sets the separator between the units
@@ -107,24 +109,26 @@ def number_to_phone(number, options = {})
107
109
#
108
110
# ==== Examples
109
111
#
110
- # number_to_currency(1234567890.50) # => $1,234,567,890.50
111
- # number_to_currency(1234567890.506) # => $1,234,567,890.51
112
- # number_to_currency(1234567890.506, precision: 3) # => $1,234,567,890.506
113
- # number_to_currency(1234567890.506, locale: :fr) # => 1 234 567 890,51 €
114
- # number_to_currency("123a456") # => $123a456
112
+ # number_to_currency(1234567890.50) # => " $1,234,567,890.50"
113
+ # number_to_currency(1234567890.506) # => " $1,234,567,890.51"
114
+ # number_to_currency(1234567890.506, precision: 3) # => " $1,234,567,890.506"
115
+ # number_to_currency(1234567890.506, locale: :fr) # => " 1 234 567 890,51 €"
116
+ # number_to_currency("123a456") # => " $123a456"
115
117
#
116
118
# number_to_currency("123a456", raise: true) # => InvalidNumberError
117
119
#
118
120
# number_to_currency(-0.456789, precision: 0)
119
121
# # => "$0"
120
122
# number_to_currency(-1234567890.50, negative_format: "(%u%n)")
121
- # # => ($1,234,567,890.50)
123
+ # # => " ($1,234,567,890.50)"
122
124
# number_to_currency(1234567890.50, unit: "R$", separator: ",", delimiter: "")
123
- # # => R$1234567890,50
125
+ # # => " R$1234567890,50"
124
126
# number_to_currency(1234567890.50, unit: "R$", separator: ",", delimiter: "", format: "%n %u")
125
- # # => 1234567890,50 R$
127
+ # # => " 1234567890,50 R$"
126
128
# number_to_currency(1234567890.50, strip_insignificant_zeros: true)
127
129
# # => "$1,234,567,890.5"
130
+ # number_to_currency(1234567890.50, precision: 0, round_mode: :up)
131
+ # # => "$1,234,567,891"
128
132
def number_to_currency ( number , options = { } )
129
133
delegate_number_helper_method ( :number_to_currency , number , options )
130
134
end
@@ -138,6 +142,8 @@ def number_to_currency(number, options = {})
138
142
# (defaults to current locale).
139
143
# * <tt>:precision</tt> - Sets the precision of the number
140
144
# (defaults to 3).
145
+ # * <tt>:round_mode</tt> - Determine how rounding is performed
146
+ # (defaults to :default. See BigDecimal::mode)
141
147
# * <tt>:significant</tt> - If +true+, precision will be the number
142
148
# of significant_digits. If +false+, the number of fractional
143
149
# digits (defaults to +false+).
@@ -155,16 +161,17 @@ def number_to_currency(number, options = {})
155
161
#
156
162
# ==== Examples
157
163
#
158
- # number_to_percentage(100) # => 100.000%
159
- # number_to_percentage("98") # => 98.000%
160
- # number_to_percentage(100, precision: 0) # => 100%
161
- # number_to_percentage(1000, delimiter: '.', separator: ',') # => 1.000,000%
162
- # number_to_percentage(302.24398923423, precision: 5) # => 302.24399%
163
- # number_to_percentage(1000, locale: :fr) # => 1 000,000%
164
- # number_to_percentage("98a") # => 98a%
165
- # number_to_percentage(100, format: "%n %") # => 100.000 %
166
- #
167
- # number_to_percentage("98a", raise: true) # => InvalidNumberError
164
+ # number_to_percentage(100) # => "100.000%"
165
+ # number_to_percentage("98") # => "98.000%"
166
+ # number_to_percentage(100, precision: 0) # => "100%"
167
+ # number_to_percentage(1000, delimiter: '.', separator: ',') # => "1.000,000%"
168
+ # number_to_percentage(302.24398923423, precision: 5) # => "302.24399%"
169
+ # number_to_percentage(1000, locale: :fr) # => "1 000,000%"
170
+ # number_to_percentage("98a") # => "98a%"
171
+ # number_to_percentage(100, format: "%n %") # => "100.000 %"
172
+ # number_to_percentage(302.24398923423, precision: 5, round_mode: :down) # => "302.24398%"
173
+ #
174
+ # number_to_percentage("98a", raise: true) # => InvalidNumberError
168
175
def number_to_percentage ( number , options = { } )
169
176
delegate_number_helper_method ( :number_to_percentage , number , options )
170
177
end
@@ -219,6 +226,8 @@ def number_with_delimiter(number, options = {})
219
226
# (defaults to current locale).
220
227
# * <tt>:precision</tt> - Sets the precision of the number
221
228
# (defaults to 3).
229
+ # * <tt>:round_mode</tt> - Determine how rounding is performed
230
+ # (defaults to :default. See BigDecimal::mode)
222
231
# * <tt>:significant</tt> - If +true+, precision will be the number
223
232
# of significant_digits. If +false+, the number of fractional
224
233
# digits (defaults to +false+).
@@ -234,21 +243,23 @@ def number_with_delimiter(number, options = {})
234
243
#
235
244
# ==== Examples
236
245
#
237
- # number_with_precision(111.2345) # => 111.235
238
- # number_with_precision(111.2345, precision: 2) # => 111.23
239
- # number_with_precision(13, precision: 5) # => 13.00000
240
- # number_with_precision(389.32314, precision: 0) # => 389
241
- # number_with_precision(111.2345, significant: true) # => 111
242
- # number_with_precision(111.2345, precision: 1, significant: true) # => 100
243
- # number_with_precision(13, precision: 5, significant: true) # => 13.000
244
- # number_with_precision(111.234, locale: :fr) # => 111,234
246
+ # number_with_precision(111.2345) # => "111.235"
247
+ # number_with_precision(111.2345, precision: 2) # => "111.23"
248
+ # number_with_precision(13, precision: 5) # => "13.00000"
249
+ # number_with_precision(389.32314, precision: 0) # => "389"
250
+ # number_with_precision(111.2345, significant: true) # => "111"
251
+ # number_with_precision(111.2345, precision: 1, significant: true) # => "100"
252
+ # number_with_precision(13, precision: 5, significant: true) # => "13.000"
253
+ # number_with_precision(13, precision: nil) # => "13"
254
+ # number_with_precision(389.32314, precision: 0, round_mode: :up) # => "390"
255
+ # number_with_precision(111.234, locale: :fr) # => "111,234"
245
256
#
246
257
# number_with_precision(13, precision: 5, significant: true, strip_insignificant_zeros: true)
247
- # # => 13
258
+ # # => "13"
248
259
#
249
260
# number_with_precision(389.32314, precision: 4, significant: true) # => 389.3
250
261
# number_with_precision(1111.2345, precision: 2, separator: ',', delimiter: '.')
251
- # # => 1.111,23
262
+ # # => " 1.111,23"
252
263
def number_with_precision ( number , options = { } )
253
264
delegate_number_helper_method ( :number_to_rounded , number , options )
254
265
end
@@ -267,6 +278,8 @@ def number_with_precision(number, options = {})
267
278
# (defaults to current locale).
268
279
# * <tt>:precision</tt> - Sets the precision of the number
269
280
# (defaults to 3).
281
+ # * <tt>:round_mode</tt> - Determine how rounding is performed
282
+ # (defaults to :default. See BigDecimal::mode)
270
283
# * <tt>:significant</tt> - If +true+, precision will be the number
271
284
# of significant_digits. If +false+, the number of fractional
272
285
# digits (defaults to +true+)
@@ -282,17 +295,18 @@ def number_with_precision(number, options = {})
282
295
#
283
296
# ==== Examples
284
297
#
285
- # number_to_human_size(123) # => 123 Bytes
286
- # number_to_human_size(1234) # => 1.21 KB
287
- # number_to_human_size(12345) # => 12.1 KB
288
- # number_to_human_size(1234567) # => 1.18 MB
289
- # number_to_human_size(1234567890) # => 1.15 GB
290
- # number_to_human_size(1234567890123) # => 1.12 TB
291
- # number_to_human_size(1234567890123456) # => 1.1 PB
292
- # number_to_human_size(1234567890123456789) # => 1.07 EB
293
- # number_to_human_size(1234567, precision: 2) # => 1.2 MB
294
- # number_to_human_size(483989, precision: 2) # => 470 KB
295
- # number_to_human_size(1234567, precision: 2, separator: ',') # => 1,2 MB
298
+ # number_to_human_size(123) # => "123 Bytes"
299
+ # number_to_human_size(1234) # => "1.21 KB"
300
+ # number_to_human_size(12345) # => "12.1 KB"
301
+ # number_to_human_size(1234567) # => "1.18 MB"
302
+ # number_to_human_size(1234567890) # => "1.15 GB"
303
+ # number_to_human_size(1234567890123) # => "1.12 TB"
304
+ # number_to_human_size(1234567890123456) # => "1.1 PB"
305
+ # number_to_human_size(1234567890123456789) # => "1.07 EB"
306
+ # number_to_human_size(1234567, precision: 2) # => "1.2 MB"
307
+ # number_to_human_size(483989, precision: 2) # => "470 KB"
308
+ # number_to_human_size(483989, precision: 2, round_mode: :up) # => "480 KB"
309
+ # number_to_human_size(1234567, precision: 2, separator: ',') # => "1,2 MB"
296
310
# number_to_human_size(1234567890123, precision: 5) # => "1.1228 TB"
297
311
# number_to_human_size(524288000, precision: 5) # => "500 MB"
298
312
def number_to_human_size ( number , options = { } )
@@ -319,6 +333,8 @@ def number_to_human_size(number, options = {})
319
333
# (defaults to current locale).
320
334
# * <tt>:precision</tt> - Sets the precision of the number
321
335
# (defaults to 3).
336
+ # * <tt>:round_mode</tt> - Determine how rounding is performed
337
+ # (defaults to :default. See BigDecimal::mode)
322
338
# * <tt>:significant</tt> - If +true+, precision will be the number
323
339
# of significant_digits. If +false+, the number of fractional
324
340
# digits (defaults to +true+)
@@ -358,11 +374,13 @@ def number_to_human_size(number, options = {})
358
374
# number_to_human(1234567890123456789) # => "1230 Quadrillion"
359
375
# number_to_human(489939, precision: 2) # => "490 Thousand"
360
376
# number_to_human(489939, precision: 4) # => "489.9 Thousand"
377
+ # number_to_human(489939, precision: 2,
378
+ # round_mode: :down) # => "480 Thousand"
361
379
# number_to_human(1234567, precision: 4,
362
- # significant: false) # => "1.2346 Million"
380
+ # significant: false) # => "1.2346 Million"
363
381
# number_to_human(1234567, precision: 1,
364
- # separator: ',',
365
- # significant: false) # => "1,2 Million"
382
+ # separator: ',',
383
+ # significant: false) # => "1,2 Million"
366
384
#
367
385
# number_to_human(500000000, precision: 5) # => "500 Million"
368
386
# number_to_human(12345012345, significant: false) # => "12.345 Billion"
0 commit comments