У меня следующая проблема, из SQL сервера получаю результат запроса, в котором есть поле типа Decimal, его значение 0.123, получаю я так:
vtData = Fields->GetItem((_bstr_t)"Data")->GetValue();
if(vtData.vt == VT_DECIMAL)
{
VarR8FromDec(&vtData.decVal, &data);
VarR8Round(data, 3, &normData);
}
После этих манипуляций normData содежит 0.12, даже если не округлять, то всё равно, в чём может быть проблема?
Здравствуйте, INsideR, Вы писали:
INR>У меня следующая проблема, из SQL сервера получаю результат запроса, в котором есть поле типа Decimal, его значение 0.123, получаю я так:
INR>vtData = Fields->GetItem((_bstr_t)"Data")->GetValue();
INR>if(vtData.vt == VT_DECIMAL)
INR>{
INR> VarR8FromDec(&vtData.decVal, &data);
INR> VarR8Round(data, 3, &normData);
INR>}
INR>После этих манипуляций normData содежит 0.12, даже если не округлять, то всё равно, в чём может быть проблема?
Может в Региональных установках (aka Языки и Стандарты)? Там есть такой параметр — Число дробных знаков. Добавь больше и посмотри на результат.