[英]How to reserve spaces in front of a double using printf() formatting in C
考慮使用C編程語言的代碼:
double d = 3.4;
printf("%02.2f", d);
要么
double d = 3.4;
printf("%2.2f", d);
運行這些代碼塊時得到的輸出是:
3.40
我正在嘗試格式化表格,並且需要在double或float前面保留空間,以便我的表格不會歪斜。
什么是獲得輸出的最佳方法
03.40
如預期?
double d = 3.4;
printf("%05.2f", d);
width字段用於整個轉換后的字符串(而不僅僅是整數部分)。
03.40
似乎不是一個好的解決方案。 您應該添加前導或尾隨空格,而不是零。
最好的選擇是使用snprintf :
const size_t buffer_size = 16;
double value = 3.40;
char buffer[buffer_size];
int result = snprintf(buffer, buffer_size, "%.2f", value);
if(result > 0 && result < buffer_size)
printf("Length of string: %d (%s)\n", result, buffer);
輸出:
Length of string: 4 (3.40)
在此處嘗試以下代碼: link 。
哦,還有一件事: snprintf
是C ++ 11的功能。 如果您沒有訪問兼容C ++ 11的編譯器的權限,請使用較不安全的版本sprintf或在Visual C ++的情況下使用特定於平台的解決方案(例如sprintf_s) 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.