C:如何在不舍入、截断或填充的情况下将浮点数转换为字符串?

新手上路,请多包涵

我面临一个问题,无法解决。需要大师的帮助。这是示例代码:-

 float f=0.01f;
printf("%f",f);

如果我们在调试期间检查变量中的值 f 包含 ‘0.0099999998’ 值并且 printf 的输出为 0.010000。

一个。有什么方法可以强制编译器为浮点类型的变量分配相同的值?

湾。我想将浮点数转换为字符串/字符数组。怎么可能只有并且只有完全相同的值被转换为字符串/字符数组。我想确保没有填充零,没有填充不需要的值,没有数字变化,如上例所示。

原文由 Azher Iqbal 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 216
1 个回答

使用以 2 为底的值不可能准确地表示以 10 为底的十进制数,除了极少数值(例如 0.25)。为了得到你需要的东西,你必须从 float/double 内置类型切换到某种十进制数字包。

原文由 Mark Ransom 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题