如何在Sharepoint中存储超过15位的数字?

时间:2016-03-23 11:01:14

标签: c# sharepoint double splistitem

我正在尝试将值9234567891234567存储在数字类型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

1 个答案:

答案 0 :(得分:1)

你会讨厌它,但答案是"根本不是"。

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

让我引用一下:

  

Number和Currency列类型都存储数值。使用   一个数字列,用于存储数学计算的数值数据   这不是财务计算或不需要高度的   准确性。使用“货币”列存储财务数据   计算或在你不想要圆数的情况下   计算。与Number列不同,Currency列是准确的15   小数点左边的数字和右边的4个数字。   “数字”和“货币”列类型都提供预定义格式   确定数据的显示方式。

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

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