gpt4 book ai didi

c - 在固定数量的字符中漂亮地打印一个双数

转载 作者:行者123 更新时间:2023-11-30 20:40:28 32 4
gpt4 key购买 nike

在 C 中打印 double (printf) 的最简单解决方案是什么:

  1. 对于所有双数(nan 和无穷大单独处理),正数和负数都使用 N 个字符(大约 6 个),正数和负数都相同(+ 或 - 始终作为第一个字符);

    <
  2. 只要数字字符不全为 0(即数字太小)或小数点是 N 个字符的最后一个(即数字太大),就使用十进制表示形式(“.”始终存在) 。否则切换到科学表示法,始终恰好占用 N 个字符。

我能想到的所有解决方案似乎都很复杂,有什么想法可以轻松获得这个结果(这里不考虑效率)?

谢谢!

最佳答案

我找不到通过单个 printf 调用来执行此操作的方法,这是我的解决方案。

必须使用至少 9 个字符(前面有 +-),这是科学记数法的最小字符数(例如:+1.0E-002)。下面我考虑9个字符的情况。根据下面报告的条件使用以下两种格式:

科学格式“%+.1e”:

  • 按照十进制格式,字符 4 到 9 为 0,并且该数字与 0 不同(即对于十进制来说太小)

  • “.”按照十进制格式,字符 3 和字符 8 之间不存在字符(即对于十进制来说太大)

十进制格式“%+.6f”:

  • 无限或纳米

  • 所有其他情况

通过更改上面的常量,可以轻松适应超过 9 个字符的表示形式。

关于c - 在固定数量的字符中漂亮地打印一个双数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22385558/

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