相關代碼如下:
char tmpbuffer[20];
double U13Coef[8]={-0.000000428344451, 0.000041556454936,-0.001508777414466, 0.02414235618335,-0.158289852824976, 1.54926741892562, 0.162671275351189,0.55};
for (i=0;i<8;i++)
{
sprintf(tmpbuffer,"%f",U13Coef[i]);
}
輸出總是0.000000;搞不懂,float型別倒是可以輸出;
uj5u.com熱心網友回復:
#include <stdio.h>
int main() {
char tmpbuffer[20];
double U13Coef[8]={-0.000000428344451, 0.000041556454936,-0.001508777414466, 0.02414235618335,-0.158289852824976, 1.54926741892562, 0.162671275351189, 0.55};
for (int i=0;i<8;i++) {
sprintf(tmpbuffer,"%.15lg",U13Coef[i]);
printf("i:%d tmpbuffer:[%s]\n",i,tmpbuffer);
}
return 0;
}
//i:0 tmpbuffer:[-4.28344451e-07]
//i:1 tmpbuffer:[4.1556454936e-05]
//i:2 tmpbuffer:[-0.001508777414466]
//i:3 tmpbuffer:[0.02414235618335]
//i:4 tmpbuffer:[-0.158289852824976]
//i:5 tmpbuffer:[1.54926741892562]
//i:6 tmpbuffer:[0.162671275351189]
//i:7 tmpbuffer:[0.55]
//
uj5u.com熱心網友回復:
#include <stdio.h>
int main() {
char tmpbuffer[20];
double U13Coef[8]={-0.000000428344451, 0.000041556454936,-0.001508777414466, 0.02414235618335,-0.158289852824976, 1.54926741892562, 0.162671275351189, 0.55};
for (int i=0;i<8;i++) {
sprintf(tmpbuffer,"%.15lf",U13Coef[i]);
printf("i:%d tmpbuffer:[%s]\n",i,tmpbuffer);
}
return 0;
}
//i:0 tmpbuffer:[-0.000000428344451]
//i:1 tmpbuffer:[0.000041556454936]
//i:2 tmpbuffer:[-0.001508777414466]
//i:3 tmpbuffer:[0.024142356183350]
//i:4 tmpbuffer:[-0.158289852824976]
//i:5 tmpbuffer:[1.549267418925620]
//i:6 tmpbuffer:[0.162671275351189]
//i:7 tmpbuffer:[0.550000000000000]
//
uj5u.com熱心網友回復:
這樣改下,供參考:#include<stdio.h>
int main()
{
int i;
char tmpbuffer[8][20];
double U13Coef[8]={-0.000000428344451, 0.000041556454936,-0.001508777414466,0.02414235618335,
-0.158289852824976, 1.54926741892562, 0.162671275351189,0.55};
for (i=0;i<8;i++)
{
sprintf(tmpbuffer[i],"%18.15f",U13Coef[i]);
printf("%s\n",tmpbuffer[i]);
}
return 0;
}
// -0.000000428344451
// 0.000041556454936
//-0.001508777414466
// 0.024142356183350
//-0.158289852824976
// 1.549267418925620
// 0.162671275351189
// 0.550000000000000
//請按任意鍵繼續. . .
uj5u.com熱心網友回復:
#include <stdio.h>
int main(void)
{
int i;
//char tmpbuffer[20];
char tmpbuffer[64];
double U13Coef[8]={-0.000000428344451, 0.000041556454936,-0.001508777414466, 0.02414235618335,-0.158289852824976, 1.54926741892562, 0.162671275351189, 0.55};
for (i=0; i<8; i++) {
sprintf(tmpbuffer,"%.15lf",U13Coef[i]);
puts(tmpbuffer);
}
return 0;
}
供參考~
注意小數點后的保留位數;
默認是6位,多余6位的不顯示;
自然不轉換到buffer里。
uj5u.com熱心網友回復:
注意列的長度,18+15>20,所以20的長度是不合適的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/284657.html
標籤:C語言
上一篇:哪位大神幫忙看一下哪點錯了。