strfromd128函数
概要:
#include <stdlib.h> #ifdef __STDC_IEC_60559_DFP__ int strfromd128(char * restrict s, size_t n, const char * restrict format, _Decimal128 fp); #endif
描述:
该函数将浮点数fp按参数format指定的格式转换,并将转换结果写入参数s指向的数组,最多可以向参数s指向的数组写入(n-1)个字符,并在写入字符末尾添加空字符。
该函数等价于:
snprintf(s, n, format, fp)
区别在于:
1、strfromd128函数的格式字符串应仅包含字符%、可选的精度(精度不能包含*字符。)以及转换说明符a、A、e、E、f、F、g、G中的一个。
2、strfromd128函数的转换说明符适用于函数后缀所指示的类型,而不是由长度修饰符指示。
3、strfromd128函数如果使用其它格式字符串将导致未定义行为。
参数:
char * restrict s
指向数组首元素的指针。数组必须足够大,能够容纳写入字符串。
size_t n
指定写入字符的最大数量,最大数量为(n-1),不包括末尾空字符。
const char * restrict format
指向格式字符串的指针。指向的格式字符串决定了浮点数如何解释和转换。
_Decimal128 fp
待转换的浮点数。
返回值:
如果n足够大,函数返回本应写入的字符数(不包括末尾的空字符。)。如果返回值是非负值,且小于n,空字符结尾的输出将完整地写入参数s指向的数组。
范例:
|
|
可能输出:
3.140000E+02
1.230000
(注: 编译时实现还未支持strfromd128函数。)
相关内容:
| strfromd32 | 将_Decimal32类型浮点数转换为字符串的函数。 |
| strfromd64 | 将_Decimal64类型浮点数转换为字符串的函数。 |
主要参考资料:
2、en.cppreference.com : strfromf, strfromd, strfroml