PR_dtoa¶
将浮点数转换为字符串。
语法¶
#include <prdtoa.h>
PRStatus PR_dtoa(
PRFloat64 d,
PRIntn mode,
PRIntn ndigits,
PRIntn *decpt,
PRIntn *sign,
char **rve,
char *buf,
PRSize bufsz);
参数¶
该函数具有以下参数
d要转换为字符串的浮点数。
mode要使用的转换类型。
ndigits输出字符串中所需的数字位数。
decpt指向内存位置的指针,运行时将在该位置存储转换的小数点的偏移量(相对于输出字符串的开头)。
sign运行时可以在其中存储转换是否为负值的指示。
*rve如果非
NULL,则此位置设置为结果末尾的地址。buf用于存储结果的缓冲区的地址。
bufsz提供的缓冲区的大小,用于保存结果。
结果¶
主要输出是存储在 buf 中的以 null 结尾的字符串。如果 rve 非 NULL,则 *rve 设置为指向返回值的末尾。
描述¶
此函数使用由 mode 指定的方法将指定的浮点数转换为字符串。可能的模式为
0产生
d的最短字符串(读取并四舍五入到最接近的值)。1类似于 0,但使用 Steele & White 停止规则。例如,对于 IEEE 754 算术,模式 0 给出 1e23,而模式 1 给出 9.999999999999999e22。
2max(1, ndigits)有效数字。这给出的返回值类似于ecvt的返回值,除了尾随零被抑制。3小数点后
ndigits位。这给出的返回值类似于fcvt的返回值,除了尾随零被抑制,并且ndigits可以为负数。4,5,8,9与模式 2 和 3 相同,但使用从左到右的数字生成。
6-9与模式 2 和 3 相同,但不要尝试快速浮点数估计(如果适用)。
all others视为模式 2。
返回时,由 buf 和 bufsz 指定的缓冲区包含转换后的字符串。尾随零被抑制。为返回值分配了足够的空间以容纳被抑制的尾随零。
如果输入参数 d 为+Infinity、-Infinity 或NAN,则 *decpt 设置为 9999。