`
xiaoer_1982
  • 浏览: 1879220 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

如何将阿拉伯数字写成英文数字

阅读更多

CREATE FUNCTION [dbo].[f_num_eng] (@num numeric(15,2))
RETURNS varchar(400) WITH ENCRYPTION
AS
BEGIN
--All rights reserved. pbsql
DECLARE @i int,@hundreds int,@tenth int,@one int
DECLARE @thousand int,@million int,@billion int
DECLARE @numbers varchar(400),@s varchar(15),@result varchar(400)
SET @numbers='one two three four five '
+'six seven eight nine ten '
+'eleven twelve thirteen fourteen fifteen '
+'sixteen seventeen eighteen nineteen '
+'twenty thirty forty fifty '
+'sixty seventy eighty ninety '
SET @s=RIGHT('000000000000000'+CAST(@num AS varchar(15)),15)
SET @billion=CAST(SUBSTRING(@s,1,3) AS int)--将12位整数分成4段:十亿、百万、千、百十个
SET @million=CAST(SUBSTRING(@s,4,3) AS int)
SET @thousand=CAST(SUBSTRING(@s,7,3) AS int)
SET @result=''
SET @i=0
WHILE @i<=3
BEGIN
SET @hundreds=CAST(SUBSTRING(@s,@i*3+1,1) AS int)--百位0-9
SET @tenth=CAST(SUBSTRING(@s,@i*3+2,1) AS int)
SET @one=(CASE @tenth WHEN 1 THEN 10 ELSE 0 END)+CAST(SUBSTRING(@s,@i*3+3,1) AS int)--个位0-19
SET @tenth=(CASE WHEN @tenth<=1 THEN 0 ELSE @tenth END)--十位0、2-9
IF (@i=1 and @billion>0 and (@million>0 or @thousand>0 or @hundreds>0)) or
(
@i=2 and (@billion>0 or @million>0) and (@thousand>0 or @hundreds>0)) or
(
@i=3 and (@billion>0 or @million>0 or @thousand>0) and (@hundreds>0))
SET @result=@result+', '--百位不是0则每段之间加连接符,
IF (@i=3 and (@billion>0 or @million>0 or @thousand>0) and (@hundreds=0 and (@tenth>0 or @one>0)))
SET @result=@result+' and '--百位是0则加连接符AND
IF @hundreds>0
SET @result=@result+RTRIM(SUBSTRING(@numbers,@hundreds*10-9,10))+' hundred'
IF @tenth>=2 and @tenth<=9
BEGIN
IF @hundreds>0
SET @result=@result+' and '
SET @result=@result+RTRIM(SUBSTRING(@numbers,@tenth*10+171,10))
END
IF @one>=1 and @one<=19
BEGIN
IF @tenth>0
SET @result=@result+'-'
ELSE
IF @hundreds>0
SET @result=@result+' and '
SET @result=@result+RTRIM(SUBSTRING(@numbers,@one*10-9,10))
END
IF @i=0 and @billion>0
SET @result=@result+' billion'
IF @i=1 and @million>0
SET @result=@result+' million'
IF @i=2 and @thousand>0
SET @result=@result+' thousand'
SET @i=@i+1
END
IF SUBSTRING(@s,14,2)<>'00'
BEGIN
SET @result=@result+' point '
IF SUBSTRING(@s,14,1)='0'
SET @result=@result+'zero'
ELSE
SET @result=@result+RTRIM(SUBSTRING(@numbers,CAST(SUBSTRING(@s,14,1) AS int)*10-9,10))
IF SUBSTRING(@s,15,1)<>'0'
SET @result=@result+' '+RTRIM(SUBSTRING(@numbers,CAST(SUBSTRING(@s,15,1) AS int)*10-9,10))
END
RETURN(@result)
END
GO
--查询
select dbo.f_num_eng(52.25)
/*
--------------------------
fifty-two point two five

(1 行受影响)
*/

分享到:
评论

相关推荐

    java写的把数字转化成英语的工具

    有些变态的报表需要把数字转换成英文输出,但愿这个能帮得到你 one hundred eighty-eight thousand, eight hundred one hundred eighty-eight thousand, eight hundred one one hundred eighty-eight thousand, ...

    数字转换成英文的代码

    用C语言完成把阿拉伯数字转换成英文的编写代码,希望能帮到大家

    Python实现中文数字转换为阿拉伯数字的方法示例

    - **在线阿拉伯数字翻译成英文工具**:[http://tools.jb51.net/transcoding/num2english](http://tools.jb51.net/transcoding/num2english) 这些工具可以提供更多样化的功能和服务,适用于不同的场景需求。 通过...

    数字金额转英文大写金额(包括小数)

    最好放在公共方法里,以便调用,定义String 类型接受返回的金额,调用参数为需要传入的金额

    编写程序,处理只包含数字与大写字母的字符串.txt

    编写程序,处理只包含数字与大写字母的字符串.txt

    数字转换为中文大写代码段

    3. 由于中文大写数字的顺序与阿拉伯数字相反(例如,“壹”在“零”之前),需要使用堆栈来处理这个逆序。 4. 将堆栈中的字符弹出,组成完整的中文大写数字字符串。 5. 处理特殊情况,如零开头的数字、负数等。 这...

    新起点一年级英语上册期末试卷精选.doc

    五、数字连连看:这是数字的配对练习,学生需要将英文数字与对应的阿拉伯数字进行连线,如"six"与数字6,"five"与数字5等,以巩固数字的英文表达。 六、把下面人物的各个身体部位和表示该部位的单词用线连起来:此...

    C++读取一文本文件并进行单词统计结果

    2. **字符串处理**:在读取文件内容后,需要对字符串进行处理,分割成单词。可以使用`std::stringstream`或`std::string`的`find`和`substr`方法来实现。C++11引入了`std::sregex_token_iterator`,通过正则表达式...

    2020春三年级英语下册Unit6Howmanypensarethere单元知识梳理湘少版20200420287

    Four rulers." 这是对数量的确认,用阿拉伯数字或英文单词来表示数目,然后再次强调总数。 4. "How many pens are there?" 同样的句型,只是将尺子替换成了钢笔,询问的是钢笔的数量。 5. "Thirteen pens." 这是对...

    2019版幼儿园小班((下册))期末模拟考试题含答案.doc

    2. **汉字与数字对应**:让孩子根据文字写出相应的阿拉伯数字,比如“九十五”应写成“95”,这有助于孩子建立汉字与数字的联系,理解数字符号的含义。 3. **前鼻韵母和后鼻韵母**:要求孩子区分并填写,这是提高...

    论文公式要求_美赛论文排版数学建模模板及写作.docx

    因此,在键盘输入英文字母时,均按变量写成斜体,而对于表示数学符号、单位符号或上下标注释的英文字母,需要选择菜单“样式”中的文字或函数,使其变为正体。 其次,在论文中,英文字母一般应使用 Times New Roman...

    上海版2022年三年级英语期中考试题.docx

    #### 三、依据录音内容,用阿拉伯数字在图片下面的括号里,写出其数量。 这类题目旨在训练学生的听力理解能力和数字认知能力。学生需要准确地理解录音中提到的数量,并将其转换成数字形式。这对于提高学生的注意力...

    计算机高薪考试.pdf

    2. **五笔字型原理**:五笔字型是一种形码输入法,通过将汉字拆分成基础字根来输入。正确的拆分原则是整字分解为字根,字根再分解为笔画,即D选项。 3. **Windows XP输入法**:系统默认捆绑的输入法不包括英语...

    英语论文引用格式规范.doc

    阿拉伯数字为引文出处的页码,不要写成 p.9;作者姓与页码之间需空一格,但不需任何标点符号;句号应置于第二个圆括弧后。 二、间接引用 间接引用是指在论文中引用其他作者的作品或专家的论述,但不是直接引用。...

    2019版幼儿园小班((下册))期末模拟考试题附答案.doc

    在语文部分,试题主要考察了孩子们对汉字与阿拉伯数字对应的理解以及对复韵母四声调的掌握。题目一要求孩子根据汉字写出对应的数字,如"九十五"应写成"95",这有助于培养孩子的基本数学能力和汉字与数字的关联性。...

    汉王嵌入式手写识别核心原理及合作开发经验[归类].pdf

    3. 可识别字符集的范围大小:通常包括标准汉字(GB2312 规定的 6763 个汉字)、异体字(繁体字和非标准的简化字)、英文字母、阿拉伯数字、标点、符号等。 4. 识别字典的大小 5. 对内存(RAM)的需求:即在识别过程...

    IK中文分词器原理

    - **处理混合字母**:对于包含英文字母和阿拉伯数字的混合字符串,同样采用类似的方式进行分词。 2. **CN_QuantifierSegmenter** - **处理中文数词**:直接在代码中指定了一系列常见的中文数词,如“一二两三四五...

    ascii码 十进制 二进制 十六进制对照表

    ASCII码分为两个部分:低7位(0-127)是基本字符集,包括了英文大小写字母、阿拉伯数字以及各种标点符号;第8位则用于扩展字符集。在本文件中,我们主要关注的是基本字符集。 #### 三、ASCII码对照表解读 下面是对...

Global site tag (gtag.js) - Google Analytics