如何在C#中舍入没有无用零的字符串数字

时间:2019-02-05 16:09:19

标签: c# string double decimal rounding

我有一些双打,我需要打印它们,但是小数太多了,我真的需要显示所有重要的小数。例如:

"1.00000000" => "1", "2.50000000" => "2.5", "205.01280000" => "205.0128"

我知道我可以将数字四舍五入,但是有什么函数或任何方法可以将数字四舍五入为正确的小数位数以删除无用的零?

4 个答案:

答案 0 :(得分:1)

我怀疑您实际上并不想四舍五入,因为目标小数位数是可变的。同样鉴于您的数字周围有",这使我相信您正在处理字符串。

您可以使用String.Trim(Char[])

完成您描述的内容

例如

string[] vals = {"1.00000000", "2.50000000", "205.01280000"};
char[] trimChars = {'.', '0'};

foreach (var v in vals) {
    Console.WriteLine(v.Trim(trimChars));
}

答案 1 :(得分:0)

string source = "2.4200";
string output = double.Parse(source).ToString();

积分:here

答案 2 :(得分:0)

如果不需要恒定的精度,但是要删除不重要的零,则可以使用string.Trim method()。它还有一个仅用于字符串结尾的变体。

yourString.TrimEnd('0');

它可以完全满足您的需要,使用TrimEnd可以保护从两侧进行修剪的数字(如0.1)。

"1.00000000" => "1", "2.50000000" => "2.5", "205.01280000" => "205.0128"

编辑: 修剪也要避免出现诸如“ 1”之类的昏迷。

yourString.TrimEnd(new []{'0', '.'});

答案 3 :(得分:-1)

尝试这个简单的解决方案:

string number_string = "1.6540000000";
double number = double.Parse(number_string);
Console.WriteLine(number);

通过这种方式,您可以继续将number_string用作双精度字符(对其执行算术操作,等等)。