根据数字的读法源码天空 写了一个把数字转成中文字符串的程序
参数一为数字
参数二为是不是反回人民币大写
参数三为是不是直接读数字 否则带有十百等单位
参数四为设置小数点后面的位数 默认为
使用方法是
t=GetChinaNum( ) 返回 二千零五点零零零四三六
t=GetChinaNum( True ) 返回 贰仟零伍元肆角肆分
t=GetChinaNum( True ) 返加 二零零五点四三六
下面是程序代码
Function GetChinaNum(otherNum As Double Optional isRMB As Boolean Optional numOption As Boolean Optional dotNum As Integer) As String
On Error Resume Next
num = Trim(Str(Int(otherNum)))
If isRMB Then
numwei = 拾佰仟万拾佰仟亿拾佰仟
numshu = 零壹贰三肆伍陆柒捌玖拾
Else
numwei = 十百千万十百千亿十百千
numshu = 零一二三四五六七八九十
End If
If otherNum = Then
num = Right(num )
GetChinaNum = Left(numwei )
For i = To Len(num)
bstr = Mid(num i )
If numOption Then
GetChinaNum = GetChinaNum ◆ Mid(numshu Val(bstr) ◆ )
If bstr = Then
If Mid(numwei Len(num) i ) = 万 Or Mid(numwei Len(num) i ) = 亿 Then
Do While Right(GetChinaNum ) = 零
GetChinaNum = Left(GetChinaNum Len(GetChinaNum) )
Loop
GetChinaNum = GetChinaNum ◆ Mid(numwei Len(num) i )
GetChinaNum = Replace(GetChinaNum 零零 零 )
Next i
If numOption = False Then
numrmb = 元角分
GetChinaNum = GetChinaNum ◆ Mid(numrmb )
If Val(num) <> otherNum Then
num = Trim(Str(Round(otherNum Val(num) )))
GetChinaNum = GetChinaNum ◆ Mid(numshu Val(bstr) ◆ ) ◆ Mid(numrmb i )
GetChinaNum = GetChinaNum ◆ 整
If dotNum = Then dotNum =
num = Trim(CStr(Round(otherNum Val(num) dotNum)))
If GetChinaNum = Then GetChinaNum = 零
GetChinaNum = GetChinaNum ◆ 点
lishixinzhi/Article/program/net/201311/12736
vb里汉字就是一个字符
MsgBox (Len("汉字"))这句显示为2
以下五条代码都可以做到:
1、Convert.ToDouble("12234")
2、ctype(textbox1.text,double)
3、DirectCast(textBox1.Text, double)
4、val(textbox1.text)
5、dim value as integer=ctype(textbox1.text,integer)
用CStr函数
如a=CStr(1.25)
就转化成功了
简单点的可以直接用Str(1.25)
使用强制转换函数CStrDim a as String
a = CStr(3333);
cstr(1.25)
他们说的和正确,但是有个缺点。
转换的时候,CSTR会把数字的正负表示出来。
1.25是正数,应该转换成"◆1.25"
但由于VB对正号的省略则转换成" 1.25"
那么你就会发现,有的时候cint(cstr(1.25))会出现类型错误。
因此得想办法把转换过程中产生的空格去掉。
replace(cstr(1.25)," ","")=="1.25"
也就是说cint(replace(cstr(1.25)," ",""))永远不会出错。
以上就是土嘎嘎小编大虾米为大家整理的vb中将数字转化为字符_vb,怎么把数字型换成文本型相关主题介绍,如果您觉得小编更新的文章对您有所帮助,不要忘记讲本站分享给您身边的朋友哦!!