最基本的问题,printf("%.2f")如何不让小数点后不补0

春天到了冬天还远吗 2009-10-18 06:16:33
最基本的问题,printf("%.2f")如何不让小数点后不补0

如 1.103466666666666
我想输出时1.1而不是1.03
...全文
4485 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangchuan3533 2011-10-20
  • 打赏
  • 举报
回复
个人感觉11楼能完全解决你的问题
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 epicyong333 的回复:]
楼主要控制小数位数的话也可以这样  printf("%.2g")
[/Quote]
虽然没完全满足我的要求,但还是有点作用,此贴以结,请到http://topic.csdn.net/u/20091016/09/f2a4710d-7e9c-4d0f-b2fe-4bc42b3171a6.html
接分,有效期2天谢谢
yinXlms 2009-10-20
  • 打赏
  • 举报
回复
楼上的帮我解决了一个大难题!谢谢
epicyong333 2009-10-20
  • 打赏
  • 举报
回复
楼主要控制小数位数的话也可以这样 printf("%.2g")
epicyong333 2009-10-20
  • 打赏
  • 举报
回复 1
使用 %g 替代 %f 就可以了
g格式:自动选f格式或e格式中较短的一种输出,且不输出无意义的零。
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 forestdb 的回复:]
揣摩LZ的意思是保留2位小数,但是如果结果最后一位是0,则不要打印此0。
正如LS的LS的所说,没有的吧,所以要自己处理下。
以下是个简单的例子。
C/C++ code
#include<stdio.h>
#include<string.h>int main(int argc,char* argv[])
{char buf[32]="";
sprintf(buf,"%.2f\n",1.103466);if (buf[strlen(buf)-2]=='0')
buf[strlen(buf)-2]='\0';
printf("%s\n", buf);return0;
}
[/Quote]
谢谢,我以为有现成的东西呢
ForestDB 2009-10-18
  • 打赏
  • 举报
回复
揣摩LZ的意思是保留2位小数,但是如果结果最后一位是0,则不要打印此0。
正如LS的LS的所说,没有的吧,所以要自己处理下。
以下是个简单的例子。

#include <stdio.h>
#include <string.h>

int main(int argc, char * argv[])
{
char buf[32] = "";
sprintf(buf, "%.2f\n", 1.103466);
if (buf[strlen(buf) - 2] == '0')
buf[strlen(buf) - 2] = '\0';
printf("%s\n", buf);

return 0;
}
太乙 2009-10-18
  • 打赏
  • 举报
回复
lz需求????
CodeSpy 2009-10-18
  • 打赏
  • 举报
回复
楼主的意思应该是禁止浮点数自动补0,比如6而不是6.0000000。
我目前没有发现C有这种格式化指令,这个应该自己处理字符串。
LAN_YT 2009-10-18
  • 打赏
  • 举报
回复
保留两位小数,那么你觉得1.1是两位小数吗?
这还搞笑了。。。。
企-鹅 2009-10-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wtx_sonery 的回复:]
引用 2 楼 wanjingwei 的回复:
printf("%.1f",);这样不就输出1.1了

关键是我要保留两位小数



[/Quote]

??
kouwenlong 2009-10-18
  • 打赏
  • 举报
回复
保留两位小数,而又不想输出1.10,真不知道你要输出什么。
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wanjingwei 的回复:]
printf("%.1f",);这样不就输出1.1了
[/Quote]
关键是我要保留两位小数


wanjingwei 2009-10-18
  • 打赏
  • 举报
回复
printf("%.1f",);这样不就输出1.1了
  • 打赏
  • 举报
回复
[Quote=引用楼主 wtx_sonery 的回复:]
最基本的问题,printf("%.2f")如何不让小数点后不补0

如 1.103466666666666
我想输出时1.1而不是1.03

[/Quote]
我想输出时1.1而不是1.10 打错了
内容概要:本文提出一种基于鱼鹰优化算法(OOA)优化的CNN-BiGUR-Attention混合模型,用于提升短期风电功率预测的精度与稳定性,采用Matlab实现代码仿真。该模型融合卷积神经网络(CNN)提取输入数据的局部空间特征,利用双向门控循环单元(BiGUR)捕捉风速、功率等时间序列的前后向动态依赖关系,并引入注意力机制自适应强化关键时间步的特征权重,从而增强模型对非平稳风电数据的表征能力;进一步,采用OOA算法对模型超参数进行全局寻优,有效提升模型收敛速度与泛化性能。研究基于实际风电场历史数据开展实验验证,结果表明,该方法相较传统模型在预测精度、鲁棒性和误差抑制方面表现更优,适用于高比例可再生能源接入背景下的电力系统调度需求。; 适合人群:从事新能源发电预测、电力系统优化调度、智能算法与深度学习融合应用等方向的科研人员及工程技术人员,尤其适合具备Matlab编程能力、熟悉时间序列建模与深度学习框架的研究者。; 使用场景及目标:①实现风电场短期功率高精度预测,支撑电网安全稳定调度与能量管理;②为深度学习模型结构设计与智能优化算法联合调参提供实践范例;③推动人工智能技术在可再生能源预测、智能电网运行等领域的落地应用。; 阅读建议:建议结合提供的Matlab代码深入理解CNN-BiGUR-Attention网络架构搭建、注意力机制实现方式及OOA优化流程,重点关注数据预处理、模型训练与参数调优细节,可通过替换不同风电数据集进行对比实验,进一步掌握模型迁移能力与适应性。

33,316

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧