当前位置: 首页>>编程示例 >>用法及示例精选 >>正文


C语言 strtold用法及代码示例

C语言stdlib头文件(stdlib.h)中strtold函数的用法及代码示例。

用法:

long double strtold (const char* str, char** endptr);
将字符串转换为long double
解析C字符串str将其内容解释为浮点数(根据当前语言环境),并将其值返回为long double。如果endptr不是一个空指针,该函数还会设置endptr指向数字后的第一个字符。

该函数的运作方式类似于strtod解释字符串,但产生类型的数字long double(参考strtod有关解释过程的详细信息)。

参数

str
以浮点数表示形式开头的C字符串。
endptr
引用一个已经分配的类型的对象char*,其值由函数设置为中的下一个字符str数值之后。
此参数也可以是空指针,在这种情况下不使用它。

返回值

成功后,函数将转换后的浮点数作为类型的值返回long double
如果无法执行有效的转换,则该函数返回零(0.0L)。
如果正确的值超出该类型可表示的值的范围,则为正或负HUGE_VALL返回,并且errno被设定为ERANGE
如果正确的值将导致下溢,则该函数将返回一个其大小不大于最小归一化正数的值(某些库实现也可能设置为errnoERANGE在这种情况下)。

示例

/* strtold example */
#include <stdio.h>      /* printf, NULL */
#include <stdlib.h>     /* strtold */

int main ()
{
  char szOrbits[] = "90613.305 365.24";
  char * pEnd;
  long double f1, f2;
  f1 = strtold (szOrbits, &pEnd);
  f2 = strtold (pEnd, NULL);
  printf ("Pluto takes %.2Lf years to complete an orbit.\n", f1/f2);
  return 0;
}


输出:
Pluto takes 248.09 years to complete an orbit.



相关用法


注:本文由纯净天空筛选整理自C标准库大神的英文原创作品 C strtold function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。