gpt4 book ai didi

c# - 在 C# 中避免数字格式中的额外零

转载 作者:太空宇宙 更新时间:2023-11-03 13:13:27 25 4
gpt4 key购买 nike

(首先:这不是 Format numbers with floating points and sign in textbox in C# 的副本)

我正在使用 dodald ( https://stackoverflow.com/a/27510646/3179989 ) 的解决方案来格式化带有 float 和符号的数字,以使它们基于 float 对齐:

textbox1.Text = String.Format("{0:+;-}{0,9:0.00000;0.00000}", number1);
textbox2.Text = String.Format("{0:+;-}{0,9:0.00000;0.00000}", number2);
textbox3.Text = String.Format("{0:+;-}{0,9:0.00000;0.00000}", number3);
textbox4.Text = String.Format("{0:+;-}{0,9:0.00000;0.00000}", number4);
textbox5.Text = String.Format("{0:+;-}{0,9:0.00000;0.00000}", number5);

它非常适用于像 -1.23456 这样的数字(结果为“- 1.23456”),但是如果数字是 1.2,那么这会将其更改为“+ 1.20000”。

问题:无论如何要避免任何额外的零?如何使用格式化参数而不是使用 (text + "") 在文本末尾添加空格?

提前致谢

编辑:在这里澄清这一点是我正在寻找的:

-123.123456
+ 1.123456
- 0.123456
- 0.123
+ 1.1
- 12.123456

我有多个垂直对齐的文本框。我希望数字按照上面介绍的方式显示,其中浮点的位置始终固定且垂直对齐。 dodald ( https://stackoverflow.com/a/27510646/3179989 ) 提供的解决方案仅适用于具有五个小数的数字,例如 -1.23456(结果为“- 1.23456”),但是如果数字为 1.2,则他的解决方案会将其更改为“+ 1.20000”。我想删除字符串中添加的零。

最佳答案

您可以通过使用字符串生成器来使用此代码,您会发现小数点右侧的所有零都已删除,这在控制台中显示在 (1555454545445.20000000000000000) 之前和 (1555454545445.2) 之后:

    static void Main(string[] args)
{
string input = "1555454545445.20000000000000000";
StringBuilder sb = new StringBuilder(input);
for (int i = 0; i < input.Length-2; i++)
{
if (input[i] == '.')
{
if (input[input.Length - 1] == '0')
{
for (int x = 0; x < input.Length - i; i++)
{
if (sb[sb.Length - 1] == '0')
{
sb = sb.Remove((sb.Length - 1), 1);
}
}
}
}
}
Console.WriteLine(input);
Console.WriteLine(sb.ToString());
}

关于c# - 在 C# 中避免数字格式中的额外零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27511347/

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