关于古代数字:万、亿、兆、京、垓、秭 ( 积分: 300 )

  • 主题发起人 主题发起人 dirk
  • 开始时间 开始时间
D

dirk

Unregistered / Unconfirmed
GUEST, unregistred user!
自小就知道,亿比万大,兆比亿大,亿以上就不清楚该叫什么了,后来读高中,一个同学的父辈四兄弟名以数字结束,分别是万、亿、兆、京,这才知道兆后面是京,那京后面呢?

自学计算机后,发现有些乱了,计算机数字中,百万为兆,但是生活中表述时,仍然是万亿为兆,于是baidu了一把,查找了一把古汉语中对数字的称呼,发现这个说法:旧说十亿为兆,十兆为京,十京为垓,这个说法和现代的用法还是不一致,古以十为进阶,这样下来,现在的亿,已经是古代的垓了,看来现在已经不沿用古代的算法了。西方不论,现代中国人以万为进阶,万万为亿,万亿为兆,以次推演,万兆为京,万京为垓才对,后来又看到了一个“秭”字,据说是垓后面的数。

这么大的数,到也未必适用,起码汉字数字多了,就不好记,就像以前也不用亿,五、六十年代说人口就是4万万国民而不是4亿,现在亿是用的多了,但兆好像还是不多,起码有一点我还是不清晰,兆现在到底是百万还是万亿?今天写一数字转汉字的程序,查了一下,好像是万亿为兆的,和计算机里的用法不同。

以后是否其他的汉字数字也会被用的多起来?也许吧,现在的数字转汉字程序,我还是以万为进阶,以万、亿、兆、京、垓、秭为量词,应该还是能适用的吧?

另外还搜到一篇,有人提议“赋予‘兆’‘京’‘垓’‘秭’新概念,发展汉语数目字”,其主要思想是:万万为亿;亿亿为兆;兆兆为京;京京为垓;垓垓为秭,到也不错,就是复杂了点。

http://cache.baidu.com/c?word=%D5%D7%2C%BE%A9%2C%DB%F2&url=http%3A//www%2E0086%2Eco%2Euk/bbs/archiver/tid%2D63958%2Ehtml&p=93759a46d19a12a058edd23e1e5ccf&user=baidu



大家对古代数字的称呼和现代的用法有什么看法?
 
用到亿就不错了,万亿,多么大呀,如果这辈子能当个亿元户,是多少了不起的一件事呀:)
 
价值 符号 西方语言 早期翻译 中华人民共和国标准 中华民国标准
10e+24 Y yotta 尧 yáo ㄧㄠˊ 佑 yòu ㄧㄡˋ
10e+21 Z zetta 泽 zé ㄗㄜˊ 皆 jiē ㄐㄧㄝ
10e+18 E exa 穰ráng ㄖㄤˊ 艾 ài ㄞˋ 艾 ài ㄞˋ
10e+15 P peta 秭 zǐ ㄗˇ 拍 pāi ㄆㄞ 拍 pāi ㄆㄞ
10e+12 T tera 垓 gāi ㄍㄞ 太 tài ㄊㄞˋ 兆 zhào ㄓㄠˋ
10e+9 G giga 京 jīng ㄐㄧㄥ 吉 jí ㄐㄧˊ 吉 jí ㄐㄧˊ
10e+6 M mega 兆 zhào 兆 zhào 百万 bǎiwàn
10e+3 k kilo 千 qiān 千 qiān 千 qiān
10e+2 h hecta 百 bǎi 百 bǎi 百 bǎi
10e+1 da deca 十 shí 十 shí 十 shí
10e-1 d deci 分 fēn 分 fēn 分 fēn
10e-2 c centi 厘 lí 厘 lí 厘 lí
10e-3 m milli 毫 háo 毫 háo 毫 háo
10e-6 μ micro 微 wēi 微 wēi 微 wēi
10e-9 n nano 纤 xiān 纳 nà 奈 nài
10e-12 p pico 沙 shā 皮 pí 皮 pí
10e-15 f femto 尘 chén 飞 fēi 飞 fēi
10e-18 a atto 渺 miǎo 阿 à 阿 à
10e-21 z zepto 仄 zè 介 jiè
10e-24 y yocto 幺 yāo 攸 yōu

汉字中对大数的描述似乎到 1.0e+24 为止了。佛经中的数字体系就庞大无数倍了:
http://bj.netsh.com/bbs/83260/messages/9737.html 华严数字体系--说说不可说

1.俱 胝 =100洛*=100x100000=10000000=10^7。(1千万)
2.阿庾多 =俱胝x俱胝 = 10^14 =1的後面接 14个 0。
3.那由他 =阿庾多x阿庾多=10^28 =1的後面接 28个 0。
4.频婆罗 =那由他x那由他 =10^56=1的後面接 56个 0。
5.矜罗羯 =频婆罗x频婆罗 =10^112 (自己接112个 0吧)
6.阿伽罗 =矜罗羯x矜罗羯 =10^224
7.最胜 =阿伽罗x阿伽罗 =10^448 (如此一级一级的推,
8 摩罗婆 = 10^896 =1的後面接 896 个 0
9 阿婆罗 = 10^1792 =1的後面接 1792个 0
10 多婆罗 = 10^3584 =1的後面接 3584个 0
11 界 分 = 10^7168 =1的後面接 7168个 0
12 普 摩 = 10^14336
13 祢 摩 = 10^28672
14 阿婆钤 = 10^57344
15 弥伽婆 = 10^114688
16 毗罗伽 = 10^229376
17 毗伽婆 = 10^458752
18 僧羯逻摩= 10^917504
19 毗萨罗 = 10^1835008
20 毗赡婆 = 10^3670016
21 毗盛伽 = 10^7340032
22 毗素陀 = 10^14680064
23 毗婆诃 = 10^29360128
24 毗薄底 = 10^58720256
25 毗 担 = 10^117440512
26 称 量 = 10^234881024
27 一 持 = 10^469762048
28 异 路 = 10^939524096
29 颠 倒 = 10^1879048192 = 1 的後面接 1879048192个 0。
...
101 僧 只 = 10^(8.8*10^30)
102 趣 = 10^(1.7*10^31)
103 至 = 10^(3.5*10^31) 也称作「喻」 (参见华严经)
104 阿僧只 = 10^(7.1*10^31) 也称作「无数」
105 阿僧只转= 10^(1.4*10^32) " " 「无数转」「大阿僧只」
106 无 量 = 10^(2.8*10^32)
107 无量转 = 10^(5.6*10^32)
108 无 边 = 10^(1.1*10^33)
109 无边转 = 10^(2.3*10^33)
110 无 等 = 10^(4.5*10^33)
111 无等转 = 10^(9.0*10^33)
112 不可数 = 10^(1.8*10^34)
113 不可数转= 10^(3.6*10^34)
114 不可称 = 10^(7.2*10^34)
115 不可称转= 10^(1.4*10^35)
116 不可思 = 10^(2.9*10^35)
117 不可思转= 10^(5.8*10^35) " "「不可议」
118 不可量 = 10^(1.1*10^36)
119 不可量转= 10^(2.2*10^36)
120 不可说 = 10 的[ 46522979840000...(一共接 36个 0 )] 次方。
121 不可说转 = 10^(9.3*10^36)
122 不可说不可说 = 10^(1.8*10^37)
123 不可说不可说转 = 10^(3.721838387*10^37)

[:D][:D][:D]
 
creation-zy兄,你贴的我已经看到了,不过没细看进去,感觉离现实远了点哈。
 
Function NumToMoney(ByVal Num As Double, Optional LX As Integer = 2, Optional ReturnMoney As Boolean = True, Optional ShowTailZero As Boolean = False, Optional ShowHZPositive As Boolean = False) As String
'一万亿为一兆,一万兆为一京,一万京为一垓,一万垓为一秭
Dim HzNum, SnDw, SDw, XDw As Variant
Dim SNum, NumB, Minus As String
Dim i, Lz As Integer
Dim Zj, Nj As Boolean

HzNum = Array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖")
SnDw = Array("", "拾", "佰", "仟")
SDw = Array("", "万", "亿", "兆", "京", "垓", "秭")
XDw = Array("角", "分", "厘", "毫")

If Num < 0 Then
Num = -Num
Minus = "负"
Else
If ShowHZPositive Then
Minus = "正"
Else
Minus = ""
End If
End If
Select Case LX
Case -1
NumB = Format(Num, "0." & String(16 - InStr(1, Num, "."), IIf(ShowTailZero, "0", "#")))
Case 0
NumB = Format(Num, "0")
Case Else
NumB = Format(Num, "0." & String(LX, IIf(ShowTailZero, "0", "#")))
End Select

SNum = Split(NumB, ".")(0)
Lz = Len(SNum)
Nj = True
Zj = False
For i = 1 To Lz Step 1
If Mid(SNum, i, 1) = "0" Then
If NumToMoney <> "" Then
Zj = True
Else
If Lz = 1 Then
NumToMoney = NumToMoney & "零"
End If
End If
Else
NumToMoney = NumToMoney & IIf(Zj, "零", "") & HzNum(Mid(SNum, i, 1))
NumToMoney = NumToMoney & SnDw((Lz - i) Mod 4)
Zj = False
Nj = True
End If
If ((Lz - i) / 4) <> ((Lz - i - 1) / 4) And Nj Then
NumToMoney = NumToMoney & SDw((Lz - i) / 4)
Nj = False
End If
Next i
NumToMoney = NumToMoney & IIf(ReturnMoney, "圆", "点")

If InStr(NumB, ".") > 0 Then
SNum = Split(NumB, ".")(1)

For i = 1 To Len(SNum)
If i > 4 Then
NumToMoney = NumToMoney & HzNum(Mid(SNum, i, 1))
Else
NumToMoney = NumToMoney & HzNum(Mid(SNum, i, 1)) & IIf(ReturnMoney, XDw(i - 1), "")
End If
Next
End If

NumToMoney = Minus & NumToMoney & IIf(ReturnMoney, "整", "")
End Function

昨天报销出差费用,填写保险单,公司培训的时候说输入数字金额就自动生成大写汉字,结果拿到excel后发现没有这个功能,就写了一个,VB代码,有空再转Delphi。

古人以十为进的表述法也不错,每一级都有汉字,就是现在用范围小了点:个、十、百、千、万、亿、兆、京、垓、秭。。。

我发现好像没几个人对古代的数字感兴趣,看来要成送分帖了,呵呵。
 
多人接受答案了。
 
后退
顶部