Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#-无尾零的浮点格式_C#_Formatting - Fatal编程技术网

C#-无尾零的浮点格式

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,

这在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
,如
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');