C语言里要对输出的结果用科学计数法表示保留三位有效数字应该怎么写啊?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言里要对输出的结果用科学计数法表示保留三位有效数字应该怎么写啊?相关的知识,希望对你有一定的参考价值。

sorry.由于没有在计算机旁,没有及时看到你的求助,你问:C语言里要对输出的结果用科学计数法表示保留三位有效数字应该怎么写?
我觉得应该是
printf("%.3e",变量名);
而不是
printf("%3e",变量名);
==================
MSDN 中有关printf打印格式串:
%[flags] [width] [.precision] [h | l | I64 | L]type
的描述,其中对[.precision]是这么说的:
The third optional field of the format specification is the precision specification.
(大义:格式规约中第三个选项段是关于小数的规则。)
==================
对于打印e, E类型的数据时,[.precision]选项的作用是:
The precision specifies the number of digits to be printed after the decimal point. The last printed digit is rounded.
(大义:该精度指定了打印小数点后的位数,之后的位数会被四舍五入)
Default precision is 6; if precision is 0 or the period (.) appears without a number following it, no decimal point is printed.
(大义:缺省情况下,该精度为6,如果精度值为0或者小数点后没有紧跟着数字,则不会打印小数部分)
==================
例:
#include <stdio.h>
int main()

float b = 100000.55555f;
printf("%3e\n",b);
printf("%.3e\n",b);
return 0;

输出结果为:
1.000006e+005
1.000e+005来自:求助得到的回答
参考技术A polly@nowthen:~/test$ cat liu.c
#include <stdio.h>

int main()

    float result = 31415.92653;

    printf("result = %0.3e\\n", result); <------ %0.3e即可

    return 0;

polly@nowthen:~/test$ gcc -Wall liu.c -o liu
polly@nowthen:~/test$ ./liu
result = 3.142e+04 <------是否是你想要的结果?其中e+04代表10的4次方。

参考技术B printf("%3e",你的变量名);追问

哦!谢啦!就是不确定记错没!所以问问!可否再问你一个关于C语言编程的问题啊?

本回答被提问者采纳
参考技术C printf("%.3e",你的变量名); 参考技术D printf("%.3e",12.345);

c语言从键盘上输入一个科学计数法的数

输入2个数一共都是用科学计数法表示的,然后通过一个公式计算出输出结果并显示,比如输入i=10e-6和d=20e-9,有这么一个共识i=a*c*d^2输出结果显示c,(a是一个常数定义时即可赋值),答对了保证在追加分数啊

#include<stdio.h>
int main()
double a,b,c,d=600;
 scanf("%lf%lf",&a,&b);
 printf("a=%lg b=%lg\\n",a,b);
 c=d*a*b*b;
 printf("c=%lg\\n",c);
 return 0;

参考技术A 在内部只要使用高斯消元法即可解出这个二元一次方程组
重点在于如何给i和d赋值对吧
使用scanf函数在标记变量的时候使用%e就可以一指数形式输入数据了
scanf("i=%e d=%e",&i,&d);

以上是关于C语言里要对输出的结果用科学计数法表示保留三位有效数字应该怎么写啊?的主要内容,如果未能解决你的问题,请参考以下文章

PL/SQL 查询结果采用科学计数法,如何改变属性。

c语言从键盘上输入一个科学计数法的数

怎么将科学计数法

如何使java中double类型不以科学计数法表示

MATLAB如何使计算结果保留4位有效数字

c语言如何让输出结果精确到两位小数