簡體   English   中英

使用printf對齊雙精度十進制不起作用

[英]Using printf to align doubles by decimal not working

我想打印雙打,以便小數點對齊。 例如:

1.2345
12.3456

應該導致

 1.2345
12.3456

我到處都看過了,最好的建議是使用以下方法(5s可以是任何東西):

printf(%5.5f\n");

我已經使用以下(非常)簡單的程序嘗試了此操作:

#include <stdio.h>

int main() {
  printf("%10.10f\n", 0.523431);
  printf("%10.10f\n", 10.43454);
  return 0;
}

我的輸出是:

0.5234310000
10.4345400000

為什么不起作用?

之前的數字. 是最小字符總數 ,不只是在小數點之前。

printf("%21.10f\n", 0.523431);

當您使用"%10.10f"您要告訴printf() “使用10個字符位置來打印數字(可選的減號,整數部分,小數點和小數部分)。從這10個位置中,保留10作為小數部分。如果這是不可能的,請忽略第一個數字並使用打印該數字所需的任何位置,以便保留小數位數。”

這就是printf()在做什么。

因此,您需要指出要使用多少個位置,例如15個位置,這些位置中的多少個位置將是小數位...。例如9個。這將為您留下5個減號位置整數部分,小數點后一位。

也就是說,嘗試在您的printf的"%15.9f"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM