如何圆一个串号,而不在C#中无用零[复制]

问题描述 投票:0回答:4

这个问题已经在这里有一个答案:

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

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

我知道我可以ROUND()的数字,但有一个功能或任何方式,以数字舍到小数点右边号删除无用为零?

c# string double decimal rounding
4个回答
0
投票
string source = "2.4200";
string output = double.Parse(source).ToString();

积分:here


1
投票

我怀疑你实际上并不想圆的数字,如小数的目标数量是可变的。也给你身边有你的号码"使我相信,你正在处理的字符串。

你可以完成你的描述使用String.Trim(Char[])什么

EG

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

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

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', '.'});

-1
投票

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

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

这样,你就可以继续使用NUMBER_STRING为双(在其上进行算术操作等)。

© www.soinside.com 2019 - 2024. All rights reserved.