2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
# File 'lib/numerical_notation/numerical_notation.rb', line 2
def self.to_short_notation(num)
case num.abs
when 0..999
num.to_s
when 1000..999_999
number = (num / 1000.0).round(1)
decimal_value = number - number.to_i
"#{decimal_value.zero? ? number.to_i : number}k"
when 1_000_000..999_999_999
number = (num / 1_000_000.0).round(1)
decimal_value = number - number.to_i
"#{decimal_value.zero? ? number.to_i : number}M"
when 1_000_000_000..999_999_999_999
number = (num / 1_000_000_000.0).round(1)
decimal_value = number - number.to_i
"#{decimal_value.zero? ? number.to_i : number}B"
else
raise ArgumentError, "Number out of range"
end
end
|