从2个英尺有效地组装浮子? (在c ++ 14及更高版本中)

时间:2017-12-30 01:22:46

标签: parsing floating-point

关于如何在float中将小数部分与整数部分分开有很多答案,但有没有办法有效地从2个整数中组装浮点数?例如,123和012345将生成123.012345 (不一定是确切的)

这个问题是在阅读"How to parse space-separated floats in c++ quickly"之后,链接的答案使用以下方法来组装浮点数:

  1. 使用'{1}}左侧的strtol提取数字。 (将是整数),提取'。'右边的数字。 (将是小数部分)
  2. 使用第二个数字的长度,将数字乘以0.1,0.01,0.001,0.0001,具体取决于其长度
  3. 从左到右添加。
  4. 是否有更有效的方法(在c ++ 14及以上版本中)?目前它需要乘法和加法,这可以在组装数亿个这样的数字时发挥作用。

    ......会直接设置指数和尾数的东西吗?

    修改

    关于将012345与12345区分开来,当它处于int形式时,上面链接的作者使用strtol,所以我可以计算解析时我们旅行的长度。所以我知道这个数字是6位数(例如),即使我有12345

0 个答案:

没有答案