VB.NET中数字转化为大写

转载 2006年06月02日 15:40:00

Public Class chinesenum
    '输入字串

    Private _InputString As String

    '输出字串,如果无效则输出错误信息

    Private _OutString As String

    '判断输出字串是否有效

    Private _Valiad As Boolean

 

    Public WriteOnly Property InputString() As String

        Set(ByVal Value As String)

            _InputString = Value

            ConvertToChineseNum()

        End Set

    End Property

    Public ReadOnly Property Valiad() As Boolean

        Get

            Return _Valiad

        End Get

    End Property

    Public ReadOnly Property OutString() As String

        Get

            Return _OutString

        End Get

    End Property

    Private Sub ConvertToChineseNum()

        Dim numList As String = "零壹贰叁肆伍陆柒捌玖"

        Dim rmbList As String = "分角元拾佰仟万拾佰仟亿拾佰仟万"

        Dim number As Double = 0

        Dim tempOutString As String = ""

        Try

            number = Double.Parse(Me._InputString)

        Catch ex As SystemException

            Me._OutString = "传入参数非数字!"

            Me._Valiad = False

            Return

        End Try

        If number > 9999999999999.99 Then

            Me._Valiad = False

            Me._OutString = "超出范围的人民币值"

            Return

        End If

        Dim tempNumberString As String = Convert.ToInt64(number * 100).ToString()

        Dim tempNmberLength As Integer = tempNumberString.Length

        Dim i As Integer = 0

        While i < tempNmberLength

            Dim oneNumber As Integer = Int32.Parse(tempNumberString.Substring(i, 1))

            Dim oneNumberChar As String = numList.Substring(oneNumber, 1)

            Dim oneNumberUnit As String = rmbList.Substring(tempNmberLength - i - 1, 1)

            If Not (oneNumberChar = "零") Then

                tempOutString += oneNumberChar + oneNumberUnit

            Else

                If oneNumberUnit = "亿" OrElse oneNumberUnit = "万" OrElse oneNumberUnit = "元" OrElse oneNumberUnit = "零" Then

                    While tempOutString.EndsWith("零")

                        tempOutString = tempOutString.Substring(0, tempOutString.Length - 1)

                    End While

                End If

                If oneNumberUnit = "亿" OrElse (oneNumberUnit = "万" AndAlso Not tempOutString.EndsWith("亿")) OrElse oneNumberUnit = "元" Then

                    tempOutString += oneNumberUnit

                Else

                    Dim tempEnd As Boolean
                    tempEnd = tempOutString.EndsWith("亿")

                    Dim zeroEnd As Boolean
                    zeroEnd = tempOutString.EndsWith("零")

                    If tempOutString.Length > 1 Then

                        Dim zeroStart As Boolean = tempOutString.Substring(tempOutString.Length - 2, 2).StartsWith("零")

                        If Not zeroEnd AndAlso (zeroStart OrElse Not tempEnd) Then

                            tempOutString += oneNumberChar

                        End If

                    Else

                        If Not zeroEnd AndAlso Not tempEnd Then

                            tempOutString += oneNumberChar

                        End If

                    End If

                End If

            End If

            i += 1

        End While

        While tempOutString.EndsWith("零")

            tempOutString = tempOutString.Substring(0, tempOutString.Length - 1)

        End While

        While tempOutString.EndsWith("元")

            tempOutString = tempOutString + "整"

        End While

        Me._OutString = tempOutString

        Me._Valiad = True

    End Sub


End Class

VB.net中金额大写转换

Module Currency Public Class Converter Inherits Object Private Const CST_CAPSTR...
  • lpwmm
  • lpwmm
  • 2016年02月28日 00:28
  • 442

ASP.NET 实现人民币大写转换函数

转换函数如下代码所示: public static string GetBig(string num) { string result=null;...
  • taomanman
  • taomanman
  • 2016年06月27日 15:52
  • 1859

大写金额转换成小写

Q:如何将大写金额转换成小写? A:简单点,格式比较严格private float getMoney(string strBig)        ...{            string strE...
  • jinjazz
  • jinjazz
  • 2007年12月04日 19:11
  • 2442

java将数字转化为大写方法

// 日期转化为大小写 public static String dataToUpper(String dateStr) { String res=""...
  • winter13292
  • winter13292
  • 2013年08月28日 09:36
  • 4128

java 数字转换为汉语中人民币的大写

package com.yunshouhu; import java.math.BigDecimal; /** * 数字转换为汉语中人民币的大写 * http://www.cnblogs.c...
  • earbao
  • earbao
  • 2016年04月19日 19:08
  • 3282

将数字转为中文金额的大写方式(C++版)

/**   * 程序目的:   *   从命令行接收一个数,并将其转化为中文金额的大写方式(C++版)   * 例如 123.45 --> 壹佰贰拾叁元肆角伍分   * @author Lov...
  • u010944926
  • u010944926
  • 2014年03月08日 15:57
  • 3248

人民币、数字大小写转换

人民币数字转大写,人民币大写转小写,大写数字转小写, 小写数字转大写 (纯粹自己看自己用)...
  • z_wenqian
  • z_wenqian
  • 2011年04月28日 10:16
  • 900

-------------------------SQL SERVER函数将人民币数字转换成大写形式---------------------

CREATE  FUNCTION [dbo].[f_num_chn] (@num numeric(14,5))   RETURNS varchar(100) WITH ENCRYPTION   AS ...
  • fredrickhu
  • fredrickhu
  • 2009年09月25日 22:45
  • 2795

关于把小写数字转化为大写数字的java代码

import java.math.BigDecimal;public class ConvertNumber { /** 定义数组存放数字对应的大写 */ private final static...
  • billfranck
  • billfranck
  • 2009年08月21日 17:39
  • 7396

数字转换成汉语中人民币的大写(javascript正则)

数字转换成汉语中人民币的大写(javascript正则)
  • qq_15266291
  • qq_15266291
  • 2017年01月22日 22:53
  • 366
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VB.NET中数字转化为大写
举报原因:
原因补充:

(最多只允许输入30个字)