相关疑难解决方法(0)

Printf宽度说明符,用于保持浮点值的精度

是否有printf宽度说明符可以应用于浮点说明符,该说明符会自动将输出格式化为必要的有效位数,以便在重新扫描字符串时,获取原始浮点值?

例如,假设我打印float2小数位数的精度:

float foobar = 0.9375;
printf("%.2f", foobar);    // prints out 0.94
Run Code Online (Sandbox Code Playgroud)

当我扫描输出时0.94,我没有符合标准的保证我将获得原始的0.9375浮点值(在这个例子中,我可能不会).

我想要一种方法告诉printf自动将浮点值打印到必要的有效位数,以确保它可以扫描回传递给的原始值printf.

我可以使用一些宏float.h导出要传递的最大宽度printf,但是是否已经有一个说明符可以自动打印到必要的有效位数 - 或者至少是最大宽度?

c floating-point printf c99 floating-point-precision

84
推荐指数
8
解决办法
21万
查看次数

.NET中最后一位数字为5时的舍入规则是什么?

这是我的代码:

\n
using static System.Console;\n\nnamespace ConsoleApp2\n{\n    internal class Program\n    {\n        static void Main(string[] args)\n        {\n            double[] doubles = new[] { 9.05, 9.15, 9.25, 9.35, 9.45, 9.55, 9.65, 9.75, 9.85, 9.95 };\n            foreach (double n in doubles)\n            {\n                WriteLine("{0} ===> {1:F1}", n, n);\n            }\n\n        }\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

输出.NET Framework 4.7.2

\n
9.05 ===> 9.1\n9.15 ===> 9.2\n9.25 ===> 9.3\n9.35 ===> 9.4\n9.45 ===> 9.5\n9.55 ===> 9.6\n9.65 ===> 9.7\n9.75 ===> 9.8\n9.85 ===> 9.9\n9.95 ===> 10.0\n
Run Code Online (Sandbox Code Playgroud)\n

输出.NET 6(使用相同的代码):

\n
9.05 …
Run Code Online (Sandbox Code Playgroud)

.net c# floating-point rounding console.writeline

45
推荐指数
2
解决办法
5217
查看次数