gpt4 book ai didi

c# - 小数部分的十进制组分隔符

转载 作者:行者123 更新时间:2023-12-05 07:29:47 26 4
gpt4 key购买 nike

我想知道格式化数字的最佳方式是什么,这样 NumberGroupSeparator 不仅可以在逗号左侧的整数部分工作,而且可以在右侧的小数部分工作逗号。

Math.PI.ToString("###,###,##0.0##,###,###,###")  // As documented ..
// ..this doesn't work
3.14159265358979 // result
3.141,592,653,589,79 // desired result

记录在 MSDNNumberGroupSeparator 仅适用于逗号左侧。我想知道为什么??

最佳答案

有点笨拙,它不适用于科学数字,但可以尝试一下:

class Program
{
static void Main(string[] args)
{
var π=Math.PI*10000;

Debug.WriteLine(Display(π));
// 31,415.926,535,897,931,899
}

static string Display(double x)
{
int s=Math.Sign(x);
x=Math.Abs(x);
StringBuilder text=new StringBuilder();
var y=Math.Truncate(x);
text.Append((s*y).ToString("#,#"));
x-=y;
if (x>0)
{
// 15 decimal places is max reasonable precision
y=Math.Truncate(x*Math.Pow(10, 15));
text.Append(".");
text.Append(y.ToString("#,#").TrimEnd('0'));
}
return text.ToString();
}

}

关于c# - 小数部分的十进制组分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52606867/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com