gpt4 book ai didi

c - 没有 strtod/sprintf 的 float 转换

转载 作者:太空宇宙 更新时间:2023-11-04 02:08:29 25 4
gpt4 key购买 nike

由于我决定在应该在 Windows 和 Linux 上运行的程序中内部使用 UTF-16,因此我需要替换一些字符串处理函数,因为我不想为用户转换为 native 字符表示形式或从 native 字符表示形式转换为模式代码。但是,如果与运行 iconv 相比,float 转换速度较慢,我可以在 strtod/sprintf 周围使用包装器 WINE做了。

最佳答案

这些与十进制之间的转换很难既快速又正确。天真的(但正确的)版本假设多精度整数,您可能没有计划依赖的实现。简而言之,包装您现有的 stdtod/sprintf 并且不用担心开销,它比使用这些函数的简单实现的性能损失要小。

在“天真不正确”类别中,有一个 implementation of strtod()当主持人缺少口译员时,所有口译员都在四处漂浮。这个实现很糟糕(它可能会返回一个相差几个 ULPs 的结果),但如果你不介意的话,你可以修改这个代码来操作 UTF-16 字符。


注意:我认为 C99 中有一个 swprintf(),但它用于 wchar_t 的字符串,它不一定是 UTF-16,因此可能不适合你。

关于c - 没有 strtod/sprintf 的 float 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17812899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com