for (int iCount = 0; iCount < oForm.LineItems.Count; iCount++)
{
Run Code Online (Sandbox Code Playgroud)
// cartDetails在这里是一个stringbuilder.
cartDetails.Append(String.Format("{0:0}", oForm.LineItems[iCount].Quantity));
cartDetails.Append(String.Format("{0:0.00}", oForm.LineItems[iCount].Price));
cartDetails.Append(String.Format("{0:0.00}", oForm.LineItems[iCount].ExtendedPrice));
//cartDetails.Append(string.Format("{0,10:#,##0.00}", oForm.LineItems[iCount].Price) + "</TD><TD>");
//cartDetails.Append(string.Format("{0,10:#,##0.00}", oForm.LineItems[iCount].ExtendedPrice) + "</TD><TD>");
//cartDetails.Append(String.Format("{0}", oForm.LineItems[iCount].Quantity).PadLeft(4)+ "</TD><TD>");
//cartDetails.Append(String.Format("{0:0.00}", oForm.LineItems[iCount].Price).PadLeft(8) + "</TD><TD>");
Run Code Online (Sandbox Code Playgroud)
我已经使用了我正在使用的源代码.我添加数量,价格,扩展价格和所有都是十进制列.我要做的就是用左边的空间填充.似乎正在发生十进制舍入到2位数.
上面那些注释的行是我尝试过的其他一些选项.目前,如果qty具有诸如4和40之类的值,则当我将它们打印在表格中时它们不会对齐.与价格相同.
有人请建议我在这做什么?
Update1:尝试了Lucas的建议,但它没有用.这就是我要做的事情.
cartDetails.Append(String.Format("{0:0,10}",oForm.LineItems [iCount] .Quantity));
当我尝试上述操作时,无论oForm.LineItems [iCount]中的值如何,它都显示每行10个.Quantity.
如果我更改String.Format("{0:0,4}",它会显示所有记录的04
我可以请一些帮助来格式化Y轴上具有'%'符号的字符串.
这是'$'的代码:
tickOptions: {formatString: '$%d'}
Run Code Online (Sandbox Code Playgroud)
如何将字符串格式化为使用'%'符号,因为'%'符号用作'关键字'?
我想读一些uint64_t从十六进制的字符串值printf和scanf.
不是所有的,我使用的大小相同的平台long或者long long,如果我使用的格式字符串喜欢"%llx"它给平台上的警告有长长的128位,"%lx"将给予警告平台上有很长很长为64位(长较小).
我的第一个想法是用宏定义格式字符串,但宏表达式不支持sizeof.
有没有办法定义我的格式字符串,以便它可以在任何平台上工作,最好没有警告?
我有一个 C 程序,可以将测量值输出到标准输出。我用来printf显示它们,格式允许我改变精度
printf("Scan=%d S_0=%.5f S_1=%.5f S_2=%.5f S_3=%.5f", scanId, S0, S1, S2, S3);
Run Code Online (Sandbox Code Playgroud)
我的问题是,我有很多像这样的印刷品,如果我想快速改变精度,我必须对每一份印刷品进行更改。我想知道是否可以使用类似 a 的东西#define将其放在精确的位置,并且它将printf在编译时应用于每个位置。我知道如果不重新编译就不可能轻易实现,但我对此表示同意。我知道与我在 python 中问的类似的东西是:
f"{s_0:.{prec}f}"
Run Code Online (Sandbox Code Playgroud) 我想知道c语言中字符/文字'\1'的定义。或者更一般地说,'\x' 的定义,其中 Latex{x\in\N} (是自然数 0,1,2,3,4,5,6,...等)
我写这篇文章是为了试图弄清楚它,但我想要一个“权威”的定义。或者更好地如何/在哪里找到这个“权威”定义。这会在c标准中吗?还是依赖于编译器?或者是其他东西?
#include <stdio.h>
int main(void) {
printf("test###_%c_###test\n", '\0');
printf("test###_%c_###test\n", '\1');
printf("test###_%c_###test\n", '\2');
printf("test###_%c_###test\n", '\3');
printf("test###_\1\2\3_###test\n");
// printf("tetest###_\0_###test\n"); ###this will cause a compiler warning
return 0;
}
Run Code Online (Sandbox Code Playgroud)
注:使用gcc版本编译:gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0 无特殊选项(即gcc test.c)
该程序输出以下内容:
test###__###test
test###__###test
test###__###test
test###__###test
test###__###test
Run Code Online (Sandbox Code Playgroud)
我知道 '\0' 是空字符,所以这对我来说很有意义。但下一行似乎也被视为“空字符”,但不完全是。更准确地说,它们似乎只是被忽略了。它们不像空字符那样表示字符串的结尾。例如,在 printf 的格式字符串中取消注释带有 '\0' 的行,并忽略编译器错误,会在 test###_ 处停止行打印,这是有意义的,因为它是字符串的“结尾”。但是如果“\0”被“传递”到格式字符串中,它就会被忽略吗?我是否需要更多地了解 printf 的实现细节才能理解这种 '\0' 行为?
抱歉,我知道这是几个问题合而为一的问题。如果我可以让我的问题更清楚或解释更多,请告诉我。
我尝试了其他“字符”,如“\a”并得到相同的结果,这是因为与“\n”相比,这些“转义”字符是“未知/未定义”,还是其他原因?
在C中,我有格式字符串,如:
char *msg = "wlll you marry me"
fprintf(stderr, "%s, %s?", name, msg);
Run Code Online (Sandbox Code Playgroud)
现在,我可以使用格式字符串在lua中执行类似的操作吗?即我想要功能相当的东西:
name .. ", " .. msg .. "?"
Run Code Online (Sandbox Code Playgroud)
在卢阿,但不是那么难看.
好的,所以我可以做string.format("%s,%s?",name,msg),但是我可以更进一步,比如perl风格,我可以去哪里:
"%name, %msg?"
Run Code Online (Sandbox Code Playgroud)
谢谢!
%.8Ffprintf 中的格式说明符有什么作用?
什么F意思?
我正在使用Python开发一些东西,我需要从%20(URL中的空格)中逃脱.例如:
"%20space%20in%20%d--" % ordnumRun Code Online (Sandbox Code Playgroud)
所以我需要使用%20作为URL,然后使用%d作为数字.但我得到这个错误:
TypeError: not enough arguments for format stringRun Code Online (Sandbox Code Playgroud)
我知道问题是什么我只是不知道如何从%20中逃脱并修复它.
当我将单元格的格式设置为%并导出时,它会自动将值乘以 100 并显示该值。所以1.9变成了190%,我用这个代码来添加% 的符号。
worksheet.Cell(2, 2).Style.NumberFormat.SetFormat("0.00%");
Run Code Online (Sandbox Code Playgroud)
有人可以帮我解决这个问题吗?
scanf应该消耗并丢弃格式字符串中不属于转换说明符的任何字符。但当非空白、非转换字符出现在格式字符串的前面时,其行为似乎有所不同。为什么?
int main() {
int num, num2;
printf("> ");
while (scanf("> %d %d", &num, &num2)) {
printf("You entered the number %d %d.\n", num, num2);
printf("> ");
}
return EXIT_SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)
如果您构建并运行它并输入
int main() {
int num, num2;
printf("> ");
while (scanf("> %d %d", &num, &num2)) {
printf("You entered the number %d %d.\n", num, num2);
printf("> ");
}
return EXIT_SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)
在提示符处,它打印消息和重复的提示符,然后立即退出。
因此,这意味着第一次scanf返回,然后在用户可以输入另一组令牌之前返回。如果您从格式字符串中删除,则循环将运行,直到用户输入非数字的内容,然后导致返回- 这是我期望的行为。20> scanf0
另外,如果我在第一个转换说明符之后放置相同的符号,则循环将继续按预期运行。也就是说,如果格式字符串具有,例如,"%d > %d"并且用户输入 …