c語言科學計數法輸出
『壹』 c語言中,用科學計數法的格式輸出很大的int數據時,怎麼輸出的
需要用大整數運算,結果一般用char數組保存,輸出的時候需要用循環。
用char數組保存的時候,最好不要用'0'-'9'來表示,直裂早接用'\肆指雀0'-'\9'逗簡表示,這樣運算性能比較高。
『貳』 C語言科學記數法
double a = 1.2e5
char buf[100]
sprintf(buf, "%e", a);/*先sprintf %e 輸出到字元數組,然後再去對字元數組里的字元串做此鬧罩適當的調整*/
.......剩下的代碼就是看森鬧你字元彎森串 處理 功力了
『叄』 c語言中printf("%08.2f,%08.2e",x,x)是什麼意思
printf("%08.2f,%08.2e",x,x)中的"%08.2f,%08.2e"叫控制輸出格式字元串(不含前後雙引號),這里的具碧銀體意思如漏首下:
%08.2f——將變數x的值按浮點數返慧數在屏幕上輸出,占寬8位右對齊,四捨五入保留2位小數;數長不足8位時前面用0補齊,超過8位時按實際長度輸出。
接著輸出一個逗號。
%08.2e——將變數x的值按浮點數科學計數法在屏幕上輸出,其餘同上。
『肆』 c語言 科學計數法輸出問題
1、1e-10是C/C++規定的浮點數的科學計數寫法,意思是1.0x10的-10次方。這個記數法有一些要求,一是e前面整數部分為1位的浮點數,如1.0、3.3、9.999978901等(但不按這個規則寫,如123.4E-3編譯器也認可);二時e可以大寫也可以小寫;三是e後面緊跟帶符號的十
進制整數,長度最大為3位,正數時可不寫+號。所以,1.234E-2、1.234e-02、1.234E-002等其實是一個意思。
2、C語言中數e(指數e)可以用exp( )函數表示。
函數原型:double exp(double x);
功 能:計算e^x的值
返 回 值:計算結果
舉例:
double x=1.5, y;
y = exp(x); // y的值就是e^1.5
註:使用exp函數時,需要將頭文件#include<math.h>添加進源文件中。
『伍』 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
『陸』 c語言,輸出科學計數法
#include<stdio.h>
#include<string.h>
charnum[110];
charresult[110];
intlen;
intmain()
{
inti,j;
ints1,s2;//小數點位置,字元串首個非零數位置
intfind1=0;
intfind2=0;//find1:是否找到小數點位置標志位,find2:是否找到首個非零數位置,0:表示未找到
intindex;
scanf("%s",num);
len=strlen(num);//讀取字元串長度
for(i=0;i<len;++i)//尋找原字元串中小數點與首個非零數的位置
{
if(find1&&find2)
break;
if(num[i]=='.'){
s1=i;
find1=1;
}
elseif(num[i]!='0'&&!find2){
find2=1;
s2=i;
}
}
if(s1-s2>0)//根據二個位置確定指數大小
index=s1-s2-1;
elseif(s2>s1)
index=s1-s2;
j=0;
for(i=s2;i<len;++i)//確定底數
{
if(num[i]=='.')
continue;
elseif(i==s2){//確定底數小數點位置
if(num[i+1]){
result[j++]=num[i];
result[j++]='.';
}
else
result[j++]=num[i];
}
else
result[j++]=num[i];
}
result[j]='