当前位置:编程学习 > VB >>

文本中所有汉字数字转阿拉伯数字

--------------------编程问答-------------------- 万一我用三万一买了一万个万家乐的电器,我就送给千家万户。

你给转换下 --------------------编程问答--------------------
引用 楼主 u012140181 的回复:
结果:
10

500拾
金额:1003050008元6角,120000万人口
6138元5角1分
10036
天天500000000元
我要10元


Private Sub Form_Load()
Me.Show
Me.Print CNum("拾")
Me.Print CNum("百")
Me.Print CNum("五佰十")
Me.Print CNum("金额:拾亿零叁百05万零捌元六角,拾2万万人口")
Me.Print CNum("陆仟壹佰叁拾捌元五角一分")
Me.Print CNum("一万零叁拾陆")
 
Me.Print CNum("天天五亿元")
Me.Print CNum("我要拾元")
End Sub

略改下LZ的Form_Load代码,输出到窗体,结果与LZ的结果大相径庭。
--------------------编程问答-------------------- 不要说语义分析和分词,连基本的状态机都不用就能解析文本的程序,根本都不用看。 --------------------编程问答--------------------

楼主,你的“结果”是你“想象的结果”吧!
难道你没看一下运行结果?
(我觉得一般都会运行来看的吧! 

很搞笑的是:
CNum("百") = 10
CNum("五佰十") = 409
--------------------编程问答--------------------
引用 2 楼 zdingyun 的回复:
.............
略改下LZ的Form_Load代码,输出到窗体,结果与LZ的结果大相径庭。

不用改,直接贴上楼主的代码运行,都不是他所说的结果。
面是跟你输出到窗体的一样。
--------------------编程问答--------------------
引用 1 楼 caozhy 的回复:
万一我用三万一买了一万个万家乐的电器,我就送给千家万户。

你给转换下

结果是:
我用20000买了个家乐的电器,我就送给佰家户。
--------------------编程问答--------------------
引用 6 楼 Chen8013 的回复:
Quote: 引用 1 楼 caozhy 的回复:

万一我用三万一买了一万个万家乐的电器,我就送给千家万户。

你给转换下

结果是:
我用20000买了个家乐的电器,我就送给佰家户。


很简单的道理,不用运行我就知道准不对。IT民科总喜欢用土办法挑战计算机科学的一些基本方法论,但是一次一次碰壁却执迷不悟。

我估计lz不会去看NLP或者编译原理之类的书籍,而会说,哦,果然不行嘛,那我再改改…… --------------------编程问答-------------------- 一百零五,一万零五
汉语数字不是简单组合的。
其它语言也没有这么简单

另外汉语大数表示有三种
1)十进制表示发法
   1亿=10万  。。。这个现在已经不用了
   1兆=100万 。。。这个常用
2)万进制表示法
   万万为亿。。。这个常用
   万亿为兆。。。这个现在已经不常用了

3)万的幂表示法
   万万为亿
   亿亿为兆
4)现在标准的表示方法是
   2)
   不过,1兆=100万 。。。这个也经常用。
个十百千万亿,这是常用的
万,亿,兆,京,垓 这个很少看到,只有大数才用

另外 汉语现在数的表示 是万进制,和十进制联合用法

万以内 10进制 万以上万进制
比如十亿一千三百万四千八百,每四位一组,形成万进制的一个位,这个万进制位,内部是十进制的。
这个是比较复杂的。
    
 

--------------------编程问答-------------------- 自然语言理解? --------------------编程问答-------------------- 阿拉伯数字--->汉字数字相对容易
汉字数字--->阿拉伯数字有点难度,关键要看场合,表示方式等等
比如“中国人口统计数字大约有13亿,估计有16亿”
1)纯汉语数字
可以这么说“中国人口统计数字大约有十三亿,估计有十六亿”
也可以这么说“中国人口统计数字大约有十三万万,估计有十六万万”

可以这么说“中国人口统计数字大约有一十三亿,估计有一十六亿”
也可以这么说“中国人口统计数字大约有一十三万万,估计有一十六万万”

2)阿拉伯数字,汉字混用
可以这么说“中国人口统计数字大约有13亿,估计有16亿”
也可以这么说“中国人口统计数字大约有13万万,估计有16万万”

是相当复杂的
还有0====> 零,〇,另,单
108 ==> 一百零八,一百〇八,一百单八,一〇八,一百另八
1080 ===>一千零八十
1008 ===>一千零八
280  ===>二百八,两百八,二百八十,两百八十 --------------------编程问答-------------------- 再举一例对话
“老人家高寿?”
“痴长八十有五矣。”
你要从这些模式中总结出规律,才能写出程序。
而有些方式,可以不必考虑。
--------------------编程问答--------------------
引用 10 楼 lm_whales 的回复:
阿拉伯数字--->汉字数字相对容易
汉字数字--->阿拉伯数字有点难度,关键要看场合,表示方式等等
…………

这点说得不错。
并且,我觉得想把“任意场合”的汉字数字转换成阿拉伯数字,难度相当大,也没有什么意思。
在一些特定场合中,“汉字数字”的表达相对规范些(比如用在财务方面的),转换起来稍微容易点。

就从我在 4F 、6F 给出的结果来看,楼主的这段代码,基本上没价值了。
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,