gpt4 book ai didi

c++ - Visual Studio 2015 中的格式更改

转载 作者:行者123 更新时间:2023-11-30 03:34:45 26 4
gpt4 key购买 nike

示例程序。只需打印转换后的值。

#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
char buffer[256] = "";
sprintf_s(buffer, "%.2e", -20.12345);
cout << buffer << endl;;
return 0;
}

在 Visual Studio 2010 和 Visual Studio 2015 中运行相同的程序。

它们显示不同的输出。

Visual Studio 2010 输出:

-2.01e+001

Visual Studio 2015 输出:

-2.01e+01

为什么显示不同的输出?任何人都可以解释。

谢谢

最佳答案

<m>E<n>形式的科学记数法表示 m*10n,其中 mn可以是正的也可以是负的。这意味着 -2.01e+001-2.01e+01实际上是相同的数字 (-2.01*101)。但是,当使用 e 时格式说明符,您实际上可以输出具有非常大或非常小的 e 值的数字,例如您可以输出 2e150 . 3 位指数用于填充输出字符串并使它们更统一(考虑 2e99, 2e1012e099, 2e101 )。

也可以使用 _set_output_format函数来改变将要显示的数字的数量。值得注意的是,在该文档页面上还指出

By default, the output of floating point numbers by functions such as printf, wprintf, and related functions in the Visual C++ Standard C library prints three digits for the exponent, even if three digits are not required to represent the value of the exponent. Zeroes are used to pad the value to three digits.

关于c++ - Visual Studio 2015 中的格式更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41844636/

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