C#-无尾零的浮点格式
这在C#to格式中可能吗C#-无尾零的浮点格式,c#,formatting,C#,Formatting,这在C#to格式中可能吗 4.52浮点数到4.52字符串 及 4.520浮点数到4.52字符串,即省略尾部零 编辑:我想我没有强调真正的问题。 我需要一个模式,符合上述两个例子有关示例,请参见网站 i、 e 假设您希望从值中省略任何尾随的0,这将为您提供所需的: ToString("0.####") 否则,您可以: ToString("0.00##") 实际上,你不需要一个模式。NET总是忽略浮点数的尾部零,除非指定不忽略 因此Console.WriteLine(4.520)将输出4.52,
4.52
浮点数到4.52
字符串
及
4.520
浮点数到4.52
字符串,即省略尾部零
编辑:我想我没有强调真正的问题。
我需要一个模式,符合上述两个例子有关示例,请参见网站
i、 e
假设您希望从值中省略任何尾随的0,这将为您提供所需的:
ToString("0.####")
否则,您可以:
ToString("0.00##")
实际上,你不需要一个模式。NET总是忽略浮点数的尾部零,除非指定不忽略 因此
Console.WriteLine(4.520)
将输出4.52
,如Console.WriteLine(4.52)
或Console.WriteLine(4.52000000000)
,输出为Console.WriteLine(4.5)
输出4.5
在上面的示例中,System.Console.WriteLine
方法将在内部调用您的浮点数上的ToString()
(无模式)
另外,如果你想找更具体的东西,你可以看看
更多数字格式字符串。所有这些结果都是“4.52”:
因为这太简单了,我想知道你的浮动是否真的是一根弦:
string formatted = "4.52".Trim('0');
string formatted = "4.520".Trim('0');
看看这个,你需要只在第二个小数点后省略吗?这不是一个真正的问题,是吗?4.52和4.520都是相同的。这还描述float.ToString()的默认行为。我想OP希望为任何float提供解决方案。不只是小数点后两位的浮点数,你是什么意思?他可以根据自己的意愿改变格式,他要求在点后加上2位数字——这就是上面的例子所做的。它可以很容易地改变!好你可以假设他在编译时知道数字是多少。但是如果他知道这一点,那么他将从
“4.52”
中获得更好的性能。嘿,那么双dNum=。。。(什么事?);格式(“{0:0.00}”,dNum);再说一次,也许我误解了:-)他想删除尾随的零,而不是强制所有浮点数都有两个小数位。仅供参考-这隐式使用了“G”格式说明符,因此您只需确保使用ToString
不会取整或根据精度对其进行不同的格式设置-是的,根据上面的链接,“G”格式说明符将数字转换为字符串的限制是7表示浮点数,15表示双精度,29表示小数。谢谢@Raphael,但我想要的行为没有什么不同,我想对所有浮点数都这样做,即我有变量float d=。。。;应该在点后写N位,但不能是尾零N位?请定义N。您的意思是想要这样的方法:字符串格式(float d,int nDecimalPlaces)
或者N总是2?而且,所有浮点数都有.ToString()
string formatted = 4.52.ToString();
string formatted = 4.520.ToString();
string formatted = "4.52".Trim('0');
string formatted = "4.520".Trim('0');