C# 设置双精度点后的位数
在c#double type中,如何设置点后的位数,我只需要4。C# 设置双精度点后的位数,c#,types,double,C#,Types,Double,在c#double type中,如何设置点后的位数,我只需要4。 谢谢。你不能。不是那样的。您可以通过这种方式设置双精度的格式(例如,使用“f4”作为格式字符串),但是如果您处理的值具有自然的小数位数,那么您可能应该使用十进制。您能给我们更多关于您的值代表什么的信息吗?您不能直接设置双精度点后的位数 可以使用格式字符串更改double的字符串表示形式 一个例子是: string.Format("{0:0.####}", number); 或者正如Jon Skeet所指出的: number.To
谢谢。你不能。不是那样的。您可以通过这种方式设置双精度的格式(例如,使用
“f4”
作为格式字符串),但是如果您处理的值具有自然的小数位数,那么您可能应该使用十进制
。您能给我们更多关于您的值代表什么的信息吗?您不能直接设置双精度点后的位数
可以使用格式字符串更改double的字符串表示形式
一个例子是:
string.Format("{0:0.####}", number);
或者正如Jon Skeet所指出的:
number.ToString("f4")
使用此选项将两个浮点数与分数中的4位数字进行比较:
if (Math.Abs(a - b) < 1E-4) {
// close enough
//...
}
if(数学Abs(a-b)<1E-4){
//足够近
//...
}
2点的x等于5.0000和4.999996,我需要它true@Bass:如果你只是在做一个平等测试,那么nobugz的答案可能是正确的。我仍然会考虑你是否想要使用十进制,尽管它取决于你所得到的值。如果你想绝对确定它们是相等的,那么它应该是双。ε,而不是1E-4。如果你想说它们“足够接近”相等,那么你的代码是finedoull。Epsilon不能按原样工作,它太小了。一个合适的epsilon类似于*1E-15,但对于每个FP操作累积的错误,它必须递增。inputValue=Math.Round(inputValue,4);改编自