C# 如何保持;0“;在asp.net中使用Math.Round时是否在double中?

C# 如何保持;0“;在asp.net中使用Math.Round时是否在double中?,c#,asp.net,asp.net-web-api,C#,Asp.net,Asp.net Web Api,我想保留双类型数据的小数点后三位,我使用Math.Round()省略结尾的0,如何保留它 double? value = 0.3000; double? result = Math.Round(value, 3);//get result = 0.3 while I need 0.300 我需要result作为类型double?而不是string,因此我无法使用.ToString() 有什么想法吗?要做到这一点,你需要从双精度更改为十进制。当0.3和0.300被视为双精度时有什么区别?类型。关

我想保留双类型数据的小数点后三位,我使用Math.Round()省略结尾的0,如何保留它

double? value = 0.3000;
double? result = Math.Round(value, 3);//get result = 0.3 while I need 0.300
我需要
result
作为类型
double?
而不是
string
,因此我无法使用
.ToString()


有什么想法吗?

要做到这一点,你需要从双精度更改为十进制。

当0.3和0.300被视为双精度时有什么区别?类型。关于
0.300
@Prasad Telkikar的任何具体原因,我只想将api结果返回为0.300,并在前端显示它,因为一些结果(如0.301)保留小数点后三位,0.300显示0.3,所以我想以统一的方式返回三位数字。您可以在前端的javascript中执行此操作,或者使用
0.3.ToString(“0.000”)
将double转换为字符串有什么问题?阅读IEEE浮点格式以获得详细信息。对于double,3和3.000是完全相同的数字。您需要的是更改显示代码,就像在C样式的格式化函数中使用“%.03f”一样。但我不知道C#中是否有类似的内容(我当然会这么认为)。@Prasad Telkikar因为模型的字段是double类型,所以我尝试使用
.ToString(“0.000”)
,但它有错误。那我就试试js