062.浮点数转换为字符串

简介: 062.浮点数转换为字符串
#include <stdio.h>
#include <string.h>
char c_je[51];  /*大写金额字符变量*/
char* zh( x )                     /*数字金额转换为大写金额子程序*/
double x;                          /*要转换的金额数*/
{
  int i, n, bz;
  char je[14];        /*数字金额的字符变量*/
  char temp[13];
  char f1[10][3] = {"零","壹","贰","叁","肆","伍",
                    "陆","柒","捌","玖"}; /*数字对应的大写数组变量*/
  char f2[11][3] = {"亿","仟","佰","拾","万",
                    "仟","佰","拾","元","角","分"}; /*每位数字对应单位数组变量*/
  sprintf( je, "%.01f", 100*x); /*转换成字符*/
  n = strlen( je );
  c_je[0] = '\0';
  bz  = 1;
  for( i = 0; i < n; i++ )
  {
    strcpy( temp, &je[i] );  /*复制到临时数组*/
    if( atoi(temp)==0)    /*判断第i位后是否全为0*/
    {
      bz = 2;
      break;
    }
    if( je[i] != '0' )
    {
      if( bz == 0 )
        strcat( c_je, f1[0] );
      strcat( c_je, f1[je[i] - '0'] ); /*数字串转化字符串*/
      bz = 1;
      strcat( c_je, f2[13-n+i]);
    }
    else
    {
      if( n-i == 7 && (je[i-1]!='0'||je[i-2]!='0' || je[i-3]!='0')) /*判断万位位置*/
        strcat( c_je, "万" );
      if( n-i == 3 ) /*判断个位数的元位置*/
        strcat( c_je, "元");
      bz = 0;
    }
  }
  if( bz == 2 )
  {
    if( n-i >= 7 && n-i < 10 )
      strcat( c_je, "万") ; /*万位数字为0,加‘万’*/
    if( n-i >= 3 )
      strcat( c_je, "元");
    strcat( c_je, "正" ); /*最后不是分位,加“正”*/
  }
  return c_je; /*返回大写金额*/
}
main()
{
  double count;
  //clrscr();
  printf("*********************************************************\n");
  printf("*                                                       *\n");
  printf("*           数字金额转换为大写金额程序 Ver.1.0          *\n");
  printf("*                                                       *\n");
  printf("*                                By RZLIN               *\n");
  printf("*                                                       *\n");
  printf("*               请输入要转换的金额:                    *\n");
  printf("*                     ");
  scanf("%lf", &count );
  printf("*           您输入的金额为:%10.2lf 。               *\n",count);
  printf("*                                                       *\n");
  printf("*转换为大写金额是:%s\n", zh( count ) );
  printf("*                                                       *\n");
  puts("*                请按任意键退出...                      *");
  printf("*********************************************************\n");
  getch();
}
相关文章
|
存储 C# C语言
浮点数在计算机中存储方式
浮点数在计算机中存储方式
742 0
|
算法 安全 Java
【C/C++ 实用工具】静态代码检测工具和平台的一览
【C/C++ 实用工具】静态代码检测工具和平台的一览
985 0
|
SQL 关系型数据库 MySQL
MySQL执行SQL文件出现【Unknown collation ‘utf8mb4_0900_ai_ci‘】的解决方案
MySQL执行SQL文件出现【Unknown collation ‘utf8mb4_0900_ai_ci‘】的解决方案
MySQL执行SQL文件出现【Unknown collation ‘utf8mb4_0900_ai_ci‘】的解决方案
|
6月前
|
Java
IDEA修改JDK版本
在IDEA中修改项目JDK版本的方法如下:1. 右键点击项目;2. 选择“Open Module Settings”,如图所示;3. 在弹出窗口中配置自定义的JDK路径。通过以上步骤,可轻松更改项目所使用的JDK版本,满足不同开发环境的需求。
1477 65
|
网络协议 网络架构
彻底弄懂ip掩码中的网络地址、广播地址、主机地址
彻底弄懂ip掩码中的网络地址、广播地址、主机地址
2772 0
|
网络架构
Ensp dhcp全局地址池(配置命令 + 实例)
Ensp dhcp全局地址池(配置命令 + 实例)
1148 1
|
监控 网络协议 安全
网络:IP地址、子网掩码、网络地址、广播地址、网段、网关
网络:IP地址、子网掩码、网络地址、广播地址、网段、网关
3170 1
网络:IP地址、子网掩码、网络地址、广播地址、网段、网关
|
JSON Java 应用服务中间件
SpringBoot中日志选择与实现
SpringBoot中日志选择与实现
267 0
|
存储 缓存 Java
Android Binder机制原理(史上最强理解,没有之一)
原文地址: http://blog.csdn.net/universus/article/details/6211589   Binder是Android系统进程间通信(IPC)方式之一。
3262 0
|
应用服务中间件 nginx
【Nginx异常】Nginx启动一闪而过没反应,Nginx双击打开后,没有启动成功,也没有进程,且127.0.0.1:8080访问不到
【Nginx异常】Nginx启动一闪而过没反应,Nginx双击打开后,没有启动成功,也没有进程,且127.0.0.1:8080访问不到
5443 1