c - 在 C 中打印一个带有两位小数但没有尾随零的 float

标签 c casting floating-point printf

C 中是否有一种简单、快速的方法来转换或打印 float ,以便输出的精度为两位小数(而不是更多),但如果有任何尾随零,它们会被删除?

示例:

100.456 -> 100.46
100.32 -> 100.32
100.7046 -> 100.7
100.00 -> 100

假设我们有 float x; 并且执行 printf(%.2f, x) 。 这将满足第一个要求,因为任何 float 都将以 2 位小数的最大精度打印。但问题是,对于 x=100.00100.7046 我们将分别得到 100.00100.70

使用“g”作为格式也无法解决问题。有什么想法吗?

最佳答案

printf ("%.2f", 100.456); 应该给你 100.46

关于c - 在 C 中打印一个带有两位小数但没有尾随零的 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15227851/

相关文章:

c - 如何使用 configure.ac 包含 AC_INCLUDES_DEFAULT 的内容?

c - 显式转换问题,C

c++ - 整数 float 除以自身是否保证为 1.f?

MySQL:将字符串转换为德语的 float /小数

c# - 在三元运算符 C# 中转换为 Nullable 创建新变量?

c - 浮点变量的大小和编译

c - 在 C 中获取 Shell 命令的结果

C 关系运算符输出

c - malloc分配的大小如何取决于RAM?

c++ - 为什么 round() 和 ceil() 不返回整数?