vc++如何将带小数点的字符串转成数字

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vc++如何将带小数点的字符串转成数字相关的知识,希望对你有一定的参考价值。

atof(将字符串转换成浮点型数)
相关函数 atoi,atol,strtod,strtol,strtoul

表头文件 #include <stdlib.h>

定义函数 double atof(const char *nptr);

函数说明 atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。参数nptr字符串可包含正负号、小数点或E(e)来表示指数部分,如123.456或123e-2。

返回值 返回转换后的浮点型数。

附加说明 atof()与使用strtod(nptr,(char**)NULL)结果相同。

范例 /* 将字符串a 与字符串b转换成数字后相加*/
#include<stdlib.h>
main()

char *a=”-100.23”;
char *b=”200e-2”;
float c;
c=atof(a)+atof(b);
printf(“c=%.2f\n”,c);


执行 c=-98.23
参考技术A #include <iostream>
#include <cstdlib>//库函数所需要的头文件
#include <cmath> //库函数所需要的头文件
int main()

char number[20]="1992.14";//目标字符串
double Number=atof(number); //atof();转换的库函数
cout<<Number<<endl; //运行结果为:1992.14,转换完成
return 0;

不过这个库函数似乎对精度是有限度的,数据很大的话估计还是要自己写写了哈,希望对你有所帮助!
参考技术B 如果是java的话,是可以直接使用Intger.parseInt(字符串),这个方法是会报异常的,有可能字符串不是数字的格式,需要捕获 参考技术C #include <stdio.h>
void main()

char str[]="17.23245";
float num = 0.0;
sscanf(str, "%f", &num);
printf("num=%f\n", num);
参考技术D atof

在c#中如何实现判断一个数值是不是为整数(或小数) 谢谢

1、将数值ToString()方法转换成字符串String.Contains()方法判断字符串中是否有小数点有就是小数

2、先将数值Convert.ToDouble然后再Convert.ToInt32再Convert.ToDouble如果最后结果等于开始的数值则为整数否则为小数。

3、将数值转成字符串然后遍历字符串调用Char.IsNumber如果都是true则为整数。

4、将数值转成字符串然后用int.TryParse返回false则是小数否则为整数。

5、将数值转成字符串正则表达式Regex rgx=new Regex^[0-9]+$然后用isMatch()方法返回true为整数否则为小数。

参考技术A

可以用以下几种方法:

    将数值ToString()方法转换成字符串,String.Contains()方法判断字符串中是否有小数点,有就是小数

    先将数值Convert.ToDouble(),然后再Convert.ToInt32(),再Convert.ToDouble(),如果最后结果等于开始的数值则为整数,否则为小数

    将数值转成字符串,然后遍历字符串,调用Char.IsNumber(),如果都是true则为整数

    将数值转成字符串,然后用int.TryParse();返回false则是小数,否则为整数

    将数值转成字符串,正则表达式Regex rgx=new Regex(“^[0-9]+$”);然后用isMatch()方法,返回true为整数,否则为小数

参考技术B

除以1看余数是否是0。

参考技术C var i = 2.0;
if (Regex.IsMatch(i.ToString(), "^\\d+$"))

//整数

else

//小数
参考技术D 可以用正则表达式 返回true or false 判断

以上是关于vc++如何将带小数点的字符串转成数字的主要内容,如果未能解决你的问题,请参考以下文章

在c#中如何实现判断一个数值是不是为整数(或小数)?

在c#中如何实现判断一个数值是不是为整数(或小数) 谢谢

ASP强制转换成整数!

C++将小数(double)转化为分数(Rational)

matlab 将数字转换成字符串,可不可以按小数点后的位数来保留?

matlab 将数字转换成字符串,可不可以按小数点后的位数来保留?