大佬教程收集整理的这篇文章主要介绍了c – 为什么sprintf_s在不同版本的Visual Studio中给出不同的结果?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
sprintf_s(buf,"%.*f",14,0.182696884245135);
在VS2008 = 0.18269688424514
在VS2015 = 0.18269688424513
sprintf_s的行为是否改变了?我怎样才能得到旧的行为?
Visual C 2015结果是正确的舍入结果.输入字符串0.182696884245135将转换为以下双精度值,这是最接近的可表示值:
0.18269688424513'49994693288181224488653242588043212890625
请注意第14个小数位后的刻度线.第15位是4,所以在用14位小数位格式化数字时,数字是“向下舍入”(或截断),而不是向上.
Visual C 2008结果不正确.我不知道在解析或格式化过程中是否引入了错误.使用Universal CRT和Visual C 2015无法获得旧的,不正确的行为.
以上是大佬教程为你收集整理的c – 为什么sprintf_s在不同版本的Visual Studio中给出不同的结果?全部内容,希望文章能够帮你解决c – 为什么sprintf_s在不同版本的Visual Studio中给出不同的结果?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。