用C#表示更多小数点的千位分隔符
我需要在C#代码或VB中使用千位分隔符,我将在BluePrism代码阶段使用这些分隔符。堆栈溢出中的一个问题在某种程度上为我提供了解决方案,但并不完整 我在小数点后有两个以上的数字,我需要这个数字有千位分隔符并保留所有的十进制值用C#表示更多小数点的千位分隔符,c#,vb.net,blueprism,C#,Vb.net,Blueprism,我需要在C#代码或VB中使用千位分隔符,我将在BluePrism代码阶段使用这些分隔符。堆栈溢出中的一个问题在某种程度上为我提供了解决方案,但并不完整 我在小数点后有两个以上的数字,我需要这个数字有千位分隔符并保留所有的十进制值 Out=String.Format(“{0:N}%”,In) 如果In为-137855027.5123456,则Out值为-137855027.51%,但我需要小数点后的所有值。如果您有这样的数字: double number = -137855027.5123456;
Out=String.Format(“{0:N}%”,In)代码>
如果In为-137855027.5123456,则Out值为-137855027.51%,但我需要小数点后的所有值。如果您有这样的数字:
double number = -137855027.5123456;
var output = string.Format("{0:N10}", number).TrimEnd('0') + "%";
您可以使用{0:NXX}
其中XX
是小数点后所需的小数位数。例如:
var output = string.Format("{0:N6}%", number); // -137,855,027.512346%
您应该选择小数点后所需的最大位数。请注意,如果没有足够的数字,其余数字将用零填充(例如123.1230000)。如果你想避免这种情况,你可以这样做:
double number = -137855027.5123456;
var output = string.Format("{0:N10}", number).TrimEnd('0') + "%";
受此启发的另一个解决方案是:
var output = number.ToString("#,#.#############################") + "%";
全部在线试用:
您可以根据输入号码构建自己的模式:
decimalmynumber=-137855027.5123456m;
//两位小数。。
字符串模式=“#,##0.”+“”.PadLeft(2,'0');
Console.WriteLine(“模式:+Pattern”);
Console.WriteLine(myNumber.ToString(模式));
Console.WriteLine();
//20位小数。。
pattern=“#,##0.”+“”.PadLeft(20,'0');
Console.WriteLine(“模式:+Pattern”);
Console.WriteLine(myNumber.ToString(模式));
Console.WriteLine();
//计算需要多少小数。。
int decimals=BitConverter.GetBytes(decimal.GetBits(myNumber)[3])[2];
pattern=“#,###0.”+“”.PadLeft(小数,“0”);
Console.WriteLine(“模式:+Pattern”);
Console.WriteLine(myNumber.ToString(模式));
Console.WriteLine();
//如果您只想设置小数,此版本将更容易:
WriteLine(myNumber.ToString(“{0:N”+小数+”}”);
我相信“F”说明符包括组分隔符,而“N”说明符没有。请检查。Out=string.Format({0:N10}),In.TrimEnd('0')+“%”代码>工作正常,如果这可以在VB@monuString.Format(“{0:N10}”,In).TrimEnd(“0”c)+“%”
。不过,您需要在
中使用不同的变量名,而不是。请注意,In
和Out
都不是VB或C#或类似于:int decimals=(decimal.GetBits(number)[3]^int.MinValue)>>16的变量名的好选择;string formatted=string.Format($“{0:N{decimals}}}%”,数字)代码>。更具可读性:)@AhmedAbdelhameed我能够在Blue Prism中使用C#代码,但当我尝试VB时,它抛出了Blue Prism期望的错误表达式—无论在线操作如何正常。您知道应该导入哪个名称空间吗?我正在使用Microsoft.VisualBasic,但没有帮助。