这个问题已经在这里有一个答案:
我有一些双打,我需要打印出来,但有太多的小数,我真的需要显示所有重要的小数。例如:
"1.00000000" => "1", "2.50000000" => "2.5", "205.01280000" => "205.0128"
我知道我可以ROUND()的数字,但有一个功能或任何方式,以数字舍到小数点右边号删除无用为零?
string source = "2.4200";
string output = double.Parse(source).ToString();
积分:here
我怀疑你实际上并不想圆的数字,如小数的目标数量是可变的。也给你身边有你的号码"
使我相信,你正在处理的字符串。
你可以完成你的描述使用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));
}
如果你并不需要一个固定的精度,但要删除不重要的零,您可以使用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', '.'});
试试这个简单的解决方案:
string number_string = "1.6540000000";
double number = double.Parse(number_string);
Console.WriteLine(number);
这样,你就可以继续使用NUMBER_STRING为双(在其上进行算术操作等)。