我正在尝试将值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
答案 0 :(得分:1)
你会讨厌它,但答案是"根本不是"。
让我引用一下:
Number和Currency列类型都存储数值。使用 一个数字列,用于存储数学计算的数值数据 这不是财务计算或不需要高度的 准确性。使用“货币”列存储财务数据 计算或在你不想要圆数的情况下 计算。与Number列不同,Currency列是准确的15 小数点左边的数字和右边的4个数字。 “数字”和“货币”列类型都提供预定义格式 确定数据的显示方式。
列出了sharepoint的数据类型,两种数字类型(数字,货币)都限制为15位数。
这意味着您几乎必须将其存储为字符串,并带来所有负面后果。 Sharepoint公开的功能比原始数据库少得多,例如,没有大型整数数据类型。