Module: ZhongwenTools::Number
- Defined in:
- lib/zhongwen_tools/number.rb,
lib/zhongwen_tools/number/number_table.rb
Overview
Number.to_pyn, to_i, to_zhs, etc.
Constant Summary collapse
- NUMBERS_TABLE =
TODO: Add huge numbers. en.wikipedia.org/wiki/Chinese_numerals#Large_numbers 垓=亿 (archaic) 秭: 1B or 100B or 1T or 10000T (archaic) 穰 溝 澗 正 載 –> beyond 100,000,000! NOTE: financial numbers i == 0 ? NT.select{ |x| x == i }.last : NT.find{ |x| x = i }
[ { zhs: '零', zht: '零', i: 0, pyn: 'ling2' }, { zhs: '〇', zht: '〇', i: 0, pyn: 'ling2' }, { zhs: '一', zht: '一', i: 1, pyn: 'yi1' }, { zhs: '壹', zht: '壹', i: 1, pyn: 'yi1' }, { zhs: '幺', zht: '幺', i: 1, pyn: 'yao1' }, { zhs: '二', zht: '二', i: 2, pyn: 'er4' }, { zhs: '两', zht: '兩', i: 2, pyn: 'liang3' }, { zhs: '贰', zht: '貳', i: 2, pyn: 'er4' }, { zhs: '三', zht: '三', i: 3, pyn: 'san1' }, { zhs: '弎', zht: '弎', i: 3, pyn: 'san1' }, { zhs: '叁', zht: '參', i: 3, pyn: 'san1' }, { zhs: '四', zht: '四', i: 4, pyn: 'si4' }, { zhs: '䦉', zht: '䦉', i: 4, pyn: 'si4' }, { zhs: '肆', zht: '肆', i: 4, pyn: 'si4' }, { zhs: '五', zht: '五', i: 5, pyn: 'wu3' }, { zhs: '伍', zht: '伍', i: 5, pyn: 'wu3' }, { zhs: '六', zht: '六', i: 6, pyn: 'liu4' }, { zhs: '陆', zht: '陸', i: 6, pyn: 'liu4' }, { zhs: '七', zht: '七', i: 7, pyn: 'qi1' }, { zhs: '柒', zht: '柒', i: 7, pyn: 'qi1' }, { zhs: '八', zht: '八', i: 8, pyn: 'ba1' }, { zhs: '捌', zht: '捌', i: 8, pyn: 'ba1' }, { zhs: '九', zht: '九', i: 9, pyn: 'jiu3' }, { zhs: '玖', zht: '玖', i: 9, pyn: 'jiu3' }, { zhs: '十', zht: '十', i: 10, pyn: 'shi2' }, { zhs: '拾', zht: '拾', i: 10, pyn: 'shi2' }, { zhs: '廿', zht: '廿', i: 20, pyn: ' nian4' }, { zhs: '百', zht: '百', i: 100, pyn: 'bai2' }, { zhs: '佰', zht: '佰', i: 100, pyn: 'bai2' }, { zhs: '千', zht: '千', i: 1_000, pyn: 'qian1' }, { zhs: '仟', zht: '仟', i: 1_000, pyn: 'qian1' }, { zhs: '万', zht: '萬', i: 10_000, pyn: 'wan4' }, { zhs: '亿', zht: '億', i: 100_000_000, pyn: 'yi4' }, { zhs: '京', zht: '京', i: 1_000_000_000_000_000, pyn: 'jing1' } ]
Class Method Summary collapse
Class Method Details
.number?(obj) ⇒ Boolean
10 11 12 13 14 15 16 17 18 |
# File 'lib/zhongwen_tools/number.rb', line 10 def self.number?(obj) case obj when String regex = /([\d]|#{ZhongwenTools::Regex.zh_numbers}){1,}/ "#{obj}".gsub(regex, '') == '' when Integer, Fixnum, Float true end end |
.to_zh(obj, type = :zhs, from = nil) ⇒ Object
29 30 31 32 33 34 35 36 |
# File 'lib/zhongwen_tools/number.rb', line 29 def self.to_zh(obj, type = :zhs, from = nil) case type.to_sym when :zht to_zht(obj, from) else to_zhs(obj, from) end end |