[英]Issue with %g precision
當我使用printf("%.6g\\n",36.666666662);
,我預計輸出36.666667
。 但實際產量為36.6667
我給出的格式有什么問題? 我的目標是有6位小數
這是正確的行為。 根據cplusplus.com :
對於a,A,e,E,f和F說明符:這是小數點后要打印的位數。
對於g和G說明符:這是要打印的最大有效位數。
如果你使用f
代替g
那么它將按預期工作。
示例代碼
#include <stdio.h>
int main(void) {
printf("%.6g\n", 36.666666662);
printf("%.6f\n", 36.666666662);
return 0;
}
結果
36.6667
36.666667
看到它在線工作: ideone 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.