C# 中的字符串格式化以处理小数位
String Formatting in C# to handle decimal places
在 Web API 中有一个数字数据类型字段,我们从 oracle DB 和 return 中检索 JSON 格式。由于它是 Number 类型,它在结果中显示为 364578.0 所以现在使用字符串格式我们试图避免像
这样的小数点
serializer.Serialize(writer, string.Format("{0:n0}",reader[i]));
它确实解决了问题,它 return 结果省略了小数位,但显示的结果类似于 364,578 我只是在检查是否有可能 return 结果类似于 364578
您可以使用自定义格式
serializer.Serialize(writer, (decimal)reader[i].ToString("0.#");
尝试
serializer.Serialize(writer, string.Format("{0:f0}",reader[i]));
F
格式不使用千位分隔符。查看 MSDN 了解详情。
我们在评论中进行了一些讨论。您似乎无法解决问题,因为 API 不在您的控制范围内。这意味着您必须解决它。
根据你的问题,我了解到另一端需要一个整数而不是小数。好的,让我们给它一个 int
然后:
serializer.Serialize(writer, Convert.ToInt32(reader[i]));
在 Web API 中有一个数字数据类型字段,我们从 oracle DB 和 return 中检索 JSON 格式。由于它是 Number 类型,它在结果中显示为 364578.0 所以现在使用字符串格式我们试图避免像
这样的小数点 serializer.Serialize(writer, string.Format("{0:n0}",reader[i]));
它确实解决了问题,它 return 结果省略了小数位,但显示的结果类似于 364,578 我只是在检查是否有可能 return 结果类似于 364578
您可以使用自定义格式
serializer.Serialize(writer, (decimal)reader[i].ToString("0.#");
尝试
serializer.Serialize(writer, string.Format("{0:f0}",reader[i]));
F
格式不使用千位分隔符。查看 MSDN 了解详情。
我们在评论中进行了一些讨论。您似乎无法解决问题,因为 API 不在您的控制范围内。这意味着您必须解决它。
根据你的问题,我了解到另一端需要一个整数而不是小数。好的,让我们给它一个 int
然后:
serializer.Serialize(writer, Convert.ToInt32(reader[i]));