加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c 11 – 将float转换为字符串的最快C方式

发布时间:2020-12-16 07:11:36 所属栏目:百科 来源:网络整理
导读:我遇到了将float转换为字符串的问题,其中to_string对我来说太慢了,因为我的数据可能涉及数百万浮点数. 由于peter.write text file fast,我已经有了如何快速写出这些数据的解决方案 然而,在解决了这个问题之后,我很快意识到将float转换为string会产生很大的影
我遇到了将float转换为字符串的问题,其中to_string对我来说太慢了,因为我的数据可能涉及数百万浮点数.

由于peter.write text file fast,我已经有了如何快速写出这些数据的解决方案

然而,在解决了这个问题之后,我很快意识到将float转换为string会产生很大的影响.

那么,除了使用其他非标准库之外,还有什么想法或解决方案吗?

解决方法

记住的优化是不直接使用to_string,每次调用它时都会创建一个新字符串.
您可能最终也会复制该字符串,这样效率不高.

你可以做的是分配一个足够大的char缓冲区来存储你需要的所有字符串表示,然后使用printf

http://www.cplusplus.com/reference/cstdio/printf/

一直重用相同的缓冲区.
如果将浮点数的精度限制为固定的小数位数,则可以计算浮点数在数组中表示的偏移量.

例如,如果我们只有一个值数组:

index = 1;
float f = value[index];
//corrresponding 6 chars float
const char* s = char_array[index*1];
//the representation will start at position 6,and it will be null terminated so you can use it as a string

澄清您的char_array将如下所示:

1.20002.4324...

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读