API 返回十进制的科学记数法



我在 API 上返回一个十进制,例如 '0.00000004177109'。当我在 API 控制器上准备响应时,它会将此小数转换为科学记数法"4.177109e-8"。当我使用ReadAsStringAsync 或 ReadAsStreamAsync等读取响应的内容时,就会发生这种情况。当我将其转换为双倍时,我得到了相同的结果。顺便说一下,我在json操作中使用Newtonsoft.JSON。以前还有其他人有同样的问题吗?

这是代码片段。

var response = task.GetAwaiter().GetResult();

var dd = response.Content.ReadAsStreamAsync().GetAwaiter().GetResult(); //When it reads , it is changing to scientific notation
StreamReader readStream = new StreamReader(dd);
var str = readStream.ReadToEnd();
str = str.Replace(); //Replacing something in readed content.
response.Content = new JsonContent(str);
return response;

这被认为是正常行为,因为它使 json 的大小更小。潜在地减少带宽使用。

反序列化器确实理解科学记数法。当反序列化程序读取"4.177109e-8"时,它会将其解释为0.00000004177109。所以不用担心。

最新更新