如何将数字(包括double型)转换为字符串

简介:


今天跟一个在腾讯工作的同学聊天了,他问我如何将一个数转换为一个字符串,我跟他说是这样的:
InBlock.gif char buffer[10];
InBlock.gif_itoa(i, buffer, 10);
可是他说不一定是int型转化为字符串,我着这样回答的:循环将这个数字乘以10,计数。转化为long型后,使用_ltoa()函数,然后再在相应的位置上加上一个小数点。现在想想这是一个很笨的解决方案。他说其实只需要一行代码就可以了,我看后感觉很好,也很常用,写到这里供大家参考。
InBlock.gif#define toString(x) #x
这个宏就可以将所有的数字,包括int型、long型和double型转换为相对应的字符串。关于这种类似的用法还有:
InBlock.gif#define makechar(x)    #@x
InBlock.gifa = makechar(b);
这个结果就相当于a='b'。
InBlock.gif#define stringer( x ) printf( #x  "\n" )
InBlock.gif
  void main()
InBlock.gif{
InBlock.gif        stringer( In quotes  in the printf function call\n ); 
InBlock.gif        stringer(  "In quotes when printed to the screen"\n );     
InBlock.gif        stringer(  "This: \"    prints an escaped double quote" );
InBlock.gif}
InBlock.gif
  //预处理时将会产生如下代码。
InBlock.gif
  void main()
InBlock.gif{
InBlock.gif     printf(  "In quotes in the printf function call\n"  "\n" );
InBlock.gif     printf(  "\"In quotes when printed to the screen\"\n"  "\n" );
InBlock.gif     printf(  "\"This: \\\" prints an escaped double quote\""  "\n" );
InBlock.gif}
InBlock.gif
  运行结果:
InBlock.gif
  In quotes  in the printf function call
InBlock.gif
  "In quotes when printed to the screen"
InBlock.gif
  "This: \" prints an escaped double quotation mark"
InBlock.gif
这种用法可以省去转义字符(\),很方便代码的编写。
关于#的用法还有很多,希望有兴趣的读者能够留言,我们一起讨论。




     本文转自panpan3210 51CTO博客,原文链接:http://blog.51cto.com/panpan/102813,如需转载请自行联系原作者


相关文章
|
1月前
|
C#
C# 字节数组与INT16,float,double之间相互转换,字符数组与字符串相互转换,
C# 字节数组与INT16,float,double之间相互转换,字符数组与字符串相互转换,
34 1
|
Java
在java中,怎样把一个double数转换为字符串时,不用科学计数法表示。
在java中,怎样把一个double数转换为字符串时,不用科学计数法表示。
457 0
|
SQL 关系型数据库 MySQL
MySQL 字符串转double转换栈帧(可能丢失精度)
简单记录栈帧以备后用 欢迎关注我的《深入理解MySQL主从原理 32讲 》,如下: 一、转换案例 最近有朋友讨论字符串转换double丢失精度的问题案例如下: 本案例来自朋友徐晨亮 root@mysqldb 22:12: [xucl]> show create table t1\G *************************** 1.
4743 0
|
Java Android开发
Android/Java判断字符串String是否为float浮点数或double类型
Android/Java判断字符串String是否为float浮点数或double类型 Android的TextUtils的isDigitsOnly方法检测整型数据没问题,但是检测浮点和double类型可能不会返回期望的...
5050 0
|
4月前
|
存储 Java
百度搜索:蓝易云【Java语言之float、double内存存储方式】
由于使用IEEE 754标准进行存储,float和double类型可以表示非常大或非常小的浮点数,并且具有一定的精度。然而,由于浮点数的特性,它们在进行精确计算时可能会存在舍入误差。在编写Java程序时,需要注意使
59 0
|
6月前
|
存储 C语言
C 语言实例 - 计算 int, float, double 和 char 字节大小
C 语言实例 - 计算 int, float, double 和 char 字节大小。
33 1
|
8月前
|
C++
C/C++ 关于double和float两种类型的区别
C/C++ 关于double和float两种类型的区别
C/C++ 关于double和float两种类型的区别
|
5月前
|
存储 C语言
计算 int, float, double 和 char 字节大小
C 语言实例 - 计算 int, float, double 和 char 字节大小。
43 1
|
5月前
|
Java
float与double精度丢失问题
float与double精度丢失问题

热门文章

最新文章