如何得到点/后面的两位数,(C)

v9tzhpje  于 2023-03-22  发布在  其他
关注(0)|答案(1)|浏览(194)

我完全是新的编码的东西,我开始在C,所以我的问题如何得到一个/两个数字后面的点(.)的价格,我有点困惑,而使用%-30 lf。

void displayItems(){
system("cls");
printf("Display Items!\n\n");
printf("%-10s %-20s %-20s %-20s %s\n", "ID", "Name Item", "Price", "Quantity", "Date");
printf ("---------------------------------------------------------------------------------------------\n");

fp = fopen("items.txt", "rb");
while(fread(&p, sizeof(p), 1, fp)== 1){
    printf("%-10d %-20s %-20lf %-20d %s\n", p.id, p.namaItem, p.price, p.quantity, p.date);
}
fclose(fp);
}
*/ The Output
ID         Name Item            Price                Quantity             Date
---------------------------------------------------------------------------------------------
1          aa                   20.000000            1                    17/03/2023
*/

我已经尝试使用%0.2和其他,但我有点卡住和困惑,谢谢!

gzszwxb4

gzszwxb41#

那%-20.2f呢?- Gerhardh
首先,通常对货币使用定点表示和算术更好-例如,整数美分而不是浮点数美元。
但是如果你使用浮点数,那么要打印的小数位数可以通过转换说明符中的精度字段来控制。例如,%-20.2f中的.2。- John Bollinger
除了scanf之外,printf中的double不需要%lf。你可以使用%f。对于可变参数函数,float参数会自动提升为double。- Gerhardh

非常感谢,你们解决了我的问题,谢谢你们的建议和纠正!

相关问题