`
谁解怨妇心
  • 浏览: 28196 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

double类型转换为汉字算法

阅读更多
  例如: 192.37  得到: 壹佰玖拾贰元叁角柒分

    刚刚在CSDN上面看到的,觉得还挺有意思的就做来看看。做完后对比一下别人那些C#跟java的代码写了一大段……汗,果然还是C/C++的数组操作方便。
#include<iostream>
#include<string>
using namespace std;

const wchar_t num[]=L"零壹贰叁肆伍陆柒捌玖";
const wchar_t wei[]=L"万仟佰拾亿仟佰拾万仟佰拾元角分";


void change(double price)
{
	wchar_t result[257]={0};
	int i=255,j=14,m;
	bool iszero=false;
	m=price*100;
	while(m)
	{
		if(iszero)
		{
			if((j%4)==0)
				result[i--]=wei[j--];
			else
				j--;
			if((m/10)%10)
				iszero=false;
		}
		else
		{
			if(m%10)
			{
				result[i--]=wei[j--];
				result[i--]=num[m%10];
				iszero=false;
			}
			else
			{
				if((j%4)==0)
					result[i--]=wei[j--];
				else
				{
					j--;
					if(j<12)
						result[i--]=num[m%10];
				}
				if(!(m/10)%10)
					iszero=true;
			}
			
		}
		m=m/10;
	}
	wcout<<(result+i+1)<<endl; 
}

int main()
{ 
	wcout.imbue( locale("chs") );
	change(101101.01);
	return 0;
}

    代码风格写得太难看了,不过C++的static_cast实在太长了,还是用C风格的强制转换算了。用char字符的话会乱码……只好用unicode字符了……
分享到:
评论

相关推荐

    基于深度学习地址模糊匹配算法

    本发明涉及一种基于深度学习模型的地址匹配算法,该算法能够将海量不规范不标准地址匹配转换为标准地址。该算法首先利用结巴(jieba)中文分词库对语料库中的地址进行分词,然后利用词向量(Word2vec)模型进行地址词...

    数字大小写转换(转换为汉字大写)

    在MFC中实现数字到汉字大写的转换,可以创建一个函数,接受一个double或int作为参数,返回一个表示汉字大写的字符串。该函数可以使用字符串模板(std::string)和MFC的 CString 类来处理和返回结果。同时,利用MFC的...

    用C++编写数字转换成汉字大写的程序

    标题 "用C++编写数字转换成汉字大写的程序" 提示我们要探讨的是如何利用C++编程语言将阿拉伯数字转换为汉字大写,这种转换在银行、财务等对账单有明确要求的领域尤为常见。汉字大写数字通常用于增强财务记录的清晰度...

    MATLAB 文本类型和数值类型的转换和元胞数组(上).md

    ### MATLAB中文本类型和数值类型的转换与元胞数组详解 #### 一、引言 MATLAB作为一种广泛应用于科学计算、数据分析、算法开发等领域的高级编程语言,提供了丰富的工具和函数来处理不同类型的数据。其中,文本类型...

    数据结构与算法java中文_草稿

    ### 数据结构与算法Java中文概览 #### Java与面向对象...以上内容概述了《数据结构与算法java中文》的主要知识点,涵盖了从编程基础到高级数据结构与算法的全面介绍,旨在为学习者提供系统化的理论指导和实践指南。

    中文地址分词及匹配项目

    “Double Levenshtein算法”是Levenshtein距离的一种变体,通常用于计算字符串之间的编辑距离,即需要多少次单字符插入、删除或替换操作才能将一个字符串转换为另一个。在中文地址匹配中,这个算法可以帮助量化两个...

    数据结构与算法java中文

    - **基本数据类型**:Java提供了八种基本数据类型,包括四种整型(byte、short、int、long)、两种浮点型(float、double)、一种字符型(char)以及布尔型(boolean)。每种数据类型都有其固定的字节大小。 - **...

    数字图像处理的MATLAB实现第二版

    《数字图像处理的MATLAB实现第二版》是深入学习图像处理技术的重要参考资料,由(美)冈萨雷斯等人撰写,并由阮秋琦翻译成中文。这本书涵盖了数字图像处理的多个核心领域,包括灰度变换与空间滤波、频域处理、图像重建...

    Java数据结构与算法_中文版

    - **基本数据类型及运算**:介绍Java中的基本数据类型,如整型(`int`, `long`, `short`, `byte`)、浮点型(`float`, `double`)、字符型(`char`)等,并探讨这些类型的运算规则。 - **流程控制语句**:包括条件...

    金额转换为大写例子C#示例代码

    `NumGetStr`方法负责将输入的Double类型的数值转换为中文大写字符串,而`LowercaseGetCap`方法则用于将数字字符串转换为中文大写形式,且提供了是否进行位数反转的选项。 ### 二、核心变量及数组定义 在类中定义了...

    数据结构与算法(JAVA语言版)(中文版)

    ### 数据结构与算法(JAVA语言版)(中文版) #### 一、Java与面向对象程序设计 本章节作为开篇,旨在为读者打下坚实的Java编程基础,为后续深入学习数据结构与算法奠定理论基石。 ##### 1.1 Java语言基础知识 *...

    中文地址分词和地址匹配

    在IT行业中,中文地址处理是一项重要...总之,中文地址分词和匹配是信息技术领域中的关键问题,通过混合分词算法和Double Levenshtein算法,我们可以有效地应对中文地址的非标准化挑战,为各种应用场景提供精准的服务。

    C#翻译算法

    通过这些知识点的组合应用,我们可以构建一个完整的“C#翻译算法”实现,将中文数字字符串有效地转换为C#的数值类型。这个过程既涉及到了语言级别的操作,也涵盖了设计模式的运用,体现了编程灵活性和可扩展性的重要...

    Java钱币大小写转换

    - **目标**:将double类型的金额数值转换为符合中国会计标准的中文大写格式。 - **原则**: 1. 数值中的小数点使用“,”表示。 2. 处理金额范围在0到100000000之间,超出此范围需特殊处理。 3. 针对0的情况,需要...

Global site tag (gtag.js) - Google Analytics