Я получаю записи из базы данных MS Access. Десятичный разделитель базы данных - запятая, и я не могу его изменить.
Значение из результата SQL, приведенное к Double, возвращает неправильное значение, так как оно не совпадает в базе данных, я полагаю, из-за разных культур в базе данных и коде.
Я использую библиотеку Petapoco.
Возможно, есть способ установить Культуру в Petapoco, но как?
public class TExternalProp
{
public String ObjectID { get; set; }
public String ObjectTable { get; set; }
public String PropName { get; set; }
public int PropType { get; set; }
public String PropStringValue { get; set; }
public Double PropDoubleValue { get; set; }
public int PropIntValue { get; set; }
}
sql = Sql.Builder.Append("WHERE ObjectID=@0 AND ObjectTable=@1 AND PropType<>@2 ", this.box_CMSID, "TSelectiveBox", 4);
sql.Append("ORDER BY PropName ASC;");
foreach (TExternalProp item in petaDb.Fetch<TExternalProp>(sql))
{
myViewModel.ObCol_BoiteInstructions.set_values(item.PropName, item.PropType, item.PropStringValue, item.PropDoubleValue, item.PropIntValue);
}
Значение в базе данных равно 3,2, приведение при возврате 3.2000000476837158 в элементе PropDoubleValue.
Мне нужно получить точно такое же значение, как в базе данных.
Есть идеи?
Решение:
MS Access Single Real = тип с плавающей точкой в C #. MS Access Double Real = двойной тип в C #