由于我已经决定在应该在Windows和Linux上运行的程序中在内部使用UTF-16,所以我需要替换一些字符串处理函数,因为我不想转换用户模式代码的本机char表示。但是,如果浮点转换要比运行iconv慢,那么我可以使用strtod/sprintf 酒的包装器。
发布于 2013-07-23 14:34:44
这些从十进制到十进制的转换都很难做到快速和正确。天真(但正确)版本假设多精度整数,而您可能并不打算依赖这种实现。总之,包装现有的stdtod/sprintf,不要担心开销,在使用这些函数的简单实现时,它的性能损失将很小。
在“天真不正确”类别中,当主机缺少执行strtod()时,所有解释器都会使用它。这个实现很糟糕(它可能会返回几个超低硫磷的结果),但是如果您不介意的话,您可以修改这段代码来操作UTF-16字符。
注意:我认为在swprintf()中有一个C99,但是它是针对wchar_t字符串的,它不必是UTF-16,所以可能对您不起作用。
https://stackoverflow.com/questions/17812899
复制相似问题