1

我正在尝试将值 9234567891234567 存储在 Number Type SPListItem 字段中。Sharepoint Number 字段的基础 C# 类型是 Double。

当我将 9234567891234567 分配给双 C# var 时,它会保存 9234567891234568。

SPListItem items = list.GetItemById(siteID);
var value = Convert.ToDouble("9234567891234567");
//pb is that value holds 9234567891234568.0
items[fieldName] = value;
items.Update();
//just to check
double ret = (double) items[fieldName];
Console.WriteLine(ret.ToString("F"));
//outputs 9234567891234570.00
4

1 回答 1

1

你会讨厌它,但答案是“一点也不”。

https://support.office.com/en-us/article/Site-column-types-and-options-0d8ddb7b-7dc7-414d-a283-ee9dca891df7#__toc277149825

让我引用:

Number 和 Currency 列类型都存储数值。使用数字列来存储数学计算的数字数据,这些数学计算不是财务计算或不需要高精度。使用货币列存储用于财务计算的数字数据,或者在您不希望在计算中使用整数的情况下。与数字列不同,货币列精确到小数点左侧 15 位和右侧 4 位。Number 和 Currency 列类型都提供了用于确定数据显示方式的预定义格式。

列出了sharepoint的数据类型,两种数字类型(数字、货币)都限制在15位以内。

这意味着您几乎必须将其存储为字符串,并带来所有负面后果。Sharepoint 公开的功能比原始数据库少得多,例如没有大整数数据类型。

于 2016-03-23T11:47:01.117 回答