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

标签 c# string floating-point format

(首先:这不是 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/

相关文章:

c# - 如何在安装时设置应用程序设置(通过安装程序类)

c# - 将 C(不是 C++)转换为 C#

string - 构造倒排索引列表的复杂性

c - 如何完全反转 C 风格的字符串

java - 为什么我的浮点变量保存整数?

python - 属性 lat 必须是显示在我的仪表板中的 float

c# - 将 IronPython 代码编译为 EXE 或 DLL

c# - MongoDB:MVC 未在发布时序列化 BsonId

c++ - 字符串类istream问题

Python Decimal类型精度错误