C语言如何把浮点数转换为字符串

目录
  • 把浮点数转换为字符串
    • 1、把float/double格式化输出到字符串
    • 2、注意事项
  • 整型、浮点型和字符串间转换
    • 1.整型、浮点型——>字符串
    • 2.字符串——>整型、浮点型

把浮点数转换为字符串

1、把float/double格式化输出到字符串

标准的C语言提供了atof函数把字符串转double,但是没有提供把float/double转换为字符串的库函数,而是采用sprintf和snprintf函数格式化输出到字符串。

函数声明:

int sprintf(char *str, const char *format, ...);
int snprintf(char *str, size_t size, const char *format, ...);

示例(book99.c)

int sprintf(char *str, const char *format, ...);
int snprintf(char *str, size_t size, const char *format, ...);
示例(book99.c)
/*
 * 程序名:book99.c,此程序演示格式化输出sprintf和snprintf函数。
 * 作者:C语言技术网(www.freecplus.net) 日期:20190525
*/
#include <stdio.h>
#include <string.h>
int main()
{
  float ff=1024.58;
  double dd=12345678901234.58;
  char strff[21],strdd[21];

  memset(strff,0,sizeof(strff)); memset(strdd,0,sizeof(strdd));

  // 把浮点数ff转换为字符串,存放在strff中。
  sprintf(strff,"%.2f",ff);
  printf("strff=%s\n",strff);  // 输出strff=1024.58

  // 把双精度浮点数dd转换为字符串,存放在strdd中。
  sprintf(strdd,"%.2lf",dd);
  printf("strdd=%s\n",strdd);  // 输出strdd=12345678901234.58

  memset(strff,0,sizeof(strff)); memset(strdd,0,sizeof(strdd));

  // 把浮点数ff转换为字符串,存放在strff中,只保留前10个字符。
  snprintf(strff,11,"%.2f",ff);
  printf("strff=%s\n",strff);  // 输出strff=1024.58

  // 把双精度浮点数dd转换为字符串,存放在strdd中,只保留前10个字符。
  snprintf(strdd,11,"%.2lf",dd);
  printf("strdd=%s\n",strdd);  // 输出strdd=1234567890
}

运行结果

2、注意事项

snprintf函数在unix和windows平台下的表现略有不同,在Linux平台下,保留size-1个字符,在windows平台下,保留size个字符。

整型、浮点型和字符串间转换

1.整型、浮点型——>字符串

整数转换为字符串:

将浮点型值转换为字符串:

2.字符串——>整型、浮点型

下列函数可以将字符串转换为数字:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • C语言中一些将字符串转换为数字的函数小结

    C语言atoi()函数:将字符串转换成int(整数) 头文件: #include <stdlib.h> atoi() 函数用来将字符串转换成整数(int),其原型为: int atoi (const char * str); [函数说明]atoi() 函数会扫描参数 str 字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过 isspace() 函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回. [返回值]返回转换后的

  • C语言中字符串与各数值类型之间的转换方法

    C语言的算法设计中,经常会需要用到字符串,而由于c语言中字符串并不是一个默认类型,其标准库stdlib设计了很多函数方便我们处理字符串与其他数值类型之间的转换. 首先放上一段展示各函数使用的代码,大家也可以copy到自己的机器上运行观察 #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int num=183; char str[3]; //itoa函数将整型转换为字符串数值类型 it

  • C/C++字符串与数字互转的实现

    C数字转字符串 int sprintf(char *str, const char *format, ...); char c[10]; sprintf(c, "%d", 15); // 将整数转换成字符串 //浮点数转字符串,number为要转换的数,ndigit表示要转换的位数 char *gcvt(double number, int ndigit, char *buf); //浮点数转字符串,number为要转换的数,ndigit表示要转换的位数, decpt和sign为输出参

  • c++将字符串转数字的实例方法

    C++字符串转化为数字的库函数 1.atoi 功 能:把一字符串转换为整数 用 法:int atoi(const char *nptr); 详细解释:atoi是英文array to integer 的缩写.atoi()会扫描参数nptr字符串,如果第一个字符不是数字也不是正负号返回零,否则开始做类型转换,之后检测到非数字或结束符 /0 时停止转换,返回整型数. 参 数: *nptr: 待转化的字符串. 返回值: int: 转换后的整形数. 2.atol 功 能:把一字符串转换为长整形 用 法:l

  • C语言如何把浮点数转换为字符串

    目录 把浮点数转换为字符串 1.把float/double格式化输出到字符串 2.注意事项 整型.浮点型和字符串间转换 1.整型.浮点型-->字符串 2.字符串-->整型.浮点型 把浮点数转换为字符串 1.把float/double格式化输出到字符串 标准的C语言提供了atof函数把字符串转double,但是没有提供把float/double转换为字符串的库函数,而是采用sprintf和snprintf函数格式化输出到字符串. 函数声明: int sprintf(char *str, cons

  • JavaScript中将一个值转换为字符串的方法分析[译]

    译者注:前两天在看ES5的时候顺便出了一道题,今天看到这篇文章,刚好解释的很清楚,就翻译了一下.在JavaScript中,主要有三种方法能让任意值转换为字符串.本文讲解了每种方法以及各自的优缺点. 1.转换字符串的三种方法 这三种将value转换为字符串的方法是: 1.value.toString() 2."" + value 3.String(value) 第一种方法存在的问题是,它不能把null和undefined转换为字符串.还有第二种和第三种方法,这两种方法的效果基本一样. •

  • golang实现unicode转换为字符串string的方法

    本文实例讲述了golang实现unicode转换为字符串string的方法.分享给大家供大家参考,具体如下: 复制代码 代码如下: package main import (     "bytes"     "encoding/binary"     "encoding/hex"     "fmt"     "strings" ) func main() {     str := `\u5bb6\u65cf

  • C语言入门之浮点数

    实际开发中使用double,而不使用float  浮点数的输出 float采用%f占位符. double采用%lf占位符.测试结果证明,double不可以用%f输入,但可以用%f输出,但是不建议采用%f,因为不同的编译器可能会有差别. long double采用%Lf占位符,注意,L是大写. 浮点数输出缺省显示小数点后六位. 浮点数采用%lf输出,完整的输出格式是%m.nlf,指定输出数据整数部分和小数部分共占m位,其中有n位是小数.如果数值长度小于m,则左端补空格,若数值长度大于m,则按实际位

  • C语言详细分析浮点数在内存中的储存

    目录 浮点数的储存格式 初步了解 深入探究 E不全为0或不全为1 E全为0 E全为1 浮点数的储存格式 初步了解 首先让我们通过一段代码来认识一下浮点型和整型的区别: int main() { int n = 9;//将整型9存储到n中 float* pFloat = (float*)&n; printf("n的值为:%d\n", n); printf("*pFloat的值为:%f\n", *pFloat); *pFloat = 9.0;//将浮点型9.0存

  • Go语言如何高效的进行字符串拼接(6种方式对比分析)

    目录 前言 string类型 字符串拼接的6种方式及原理 原生拼接方式"+" 字符串格式化函数fmt.Sprintf Strings.builder bytes.Buffer strings.join 切片append Benchmark对比 结论 总结 前言 日常业务开发中离不开字符串的拼接操作,不同语言的字符串实现方式都不同,在Go语言中就提供了6种方式进行字符串拼接,那这几种拼接方式该如何选择呢?使用那个更高效呢?本文我们就一起来分析一下. 本文使用Go语言版本:1.17.1 s

  • 将json对象转换为字符串的方法

    复制代码 代码如下: /* 将json对象转换为字符串 使用方法: var json = {id=3,name="abc"}; var str = tools.j2s(json); */ tools.j2s = function(O) { var S = []; var J = ""; if (Object.prototype.toString.apply(O) === '[object Array]') { for ( var i = 0; i < O.le

  • Javascript中将变量转换为字符串的三种方法

    前言 大家应该都知道,对于JavaScript,有3种不同方法可以将变量转换为字符串.这篇文章将详细介绍这些方法,并比较他们的优劣.下面话不多说了,来一起看看详细的介绍吧. 3种方法 将变量转换为字符串的3种方法如下: value.toString() "" + value String(value) 当value为null或者undefined时,第1种方法就不行了.而方法2和方法3基本上是一样的. ""+value: 将value与空字符串相加,即可将其转换为字

  • go语言按显示长度截取字符串的方法

    本文实例讲述了go语言按显示长度截取字符串的方法.分享给大家供大家参考.具体分析如下: 根据显示长度截取字符串,之前php用的utf8编码,10个英文和10个汉字的显示长度差距太大,按字节截取的话又会出错出现截取半个汉字的情况,所以写了这两个函数. 这两天在折腾golang,所以就用golang重写了着连个函数.代码如下: 复制代码 代码如下: package main import (     "fmt" ) func main() {     fmt.Println(show_st

  • 在C语言中比较两个字符串是否相等的方法

    C语言strcmp()函数:比较字符串(区分大小写) 头文件:#include <string.h> strcmp() 用来比较字符串(区分大小写),其原型为: int strcmp(const char *s1, const char *s2); [参数]s1, s2 为需要比较的两个字符串. 字符串大小的比较是以ASCII 码表上的顺序来决定,此顺序亦为字符的值.strcmp()首先将s1 第一个字符值减去s2 第一个字符值,若差值为0 则再继续比较下个字符,若差值不为0 则将差值返回.例

随机推荐