在 C# 中将 "float;#22.0000000000000" 转换为 "22.0"

Convert "float;#22.0000000000000" into just "22.0" in C#

我正在对一个对象执行 ToString(),我得到的输出是 float;#22.0000000000000。我只需要 22.0.

如何在 C# 中实现这一点?

附加信息: 该对象是 SharePoint 列表中数字列的值。正在使用 CAML 查询在我的代码中重试该值。我确定是使用 CAML 查询导致了这个问题。如果我只是通过遍历列表中的所有项目来检索项目,我不会遇到这个问题,但这种方法不如 CAML 查询有效。

更新:
似乎不是导致此输出的 ToString() 。我正在调用 ToString() 的对象似乎已经设置为 float;#22.0000000000000,所以这就是直接从 CAML 查询中得出的结果。

使用给定的代码只得到 22.0

string value = "float;#22.0000000000000";
var number = value.Split('#')[1];
double num = double.Parse(number);
Console.WriteLine(num.ToString("0.0"));

Result: 22.0

提到的代码应该有效。

item.GetFormattedValue("ColumnName")

或者试试这个 post

https://social.msdn.microsoft.com/Forums/office/en-US/fdef03db-9678-46cf-8ff7-03551f4b8466/how-to-convert-a-decimal-number-field-to-c?forum=sharepointdevelopmentprevious