Странное поведение ->set - округляет сам по себе

Несмотря на то, что число в set заходит 46818.483, он с упорством мне в базу заносит 46818.5.
Проверил все вплоть до самой функции $adj->set. Даже если в set установить не через переменную, а напрямую это число, все равно в базе отображается округленное число. Причем округляет когда как хочет. Иногда до десятой иногда до сотой…

$change = $this->modx->getObject('newEraChange', $this->data_for_change['id_change']);

		$types = $this->modx->getFieldMeta($change->get('obj_name'));

		if ($types[$change->get('field')]['phptype'] == 'float') {
			$new = floatval(str_replace(",", ".", $change->get('new')));
		} elseif ($types[$change->get('field')]['phptype'] == 'int') {
			$new = intval(str_replace(",", ".", $change->get('new')));
		} else {
			$new = $change->get('new');
		}

		$adj = $this->modx->getObject($change->get('obj_name'), $change->get('id_item'));
		$adj->set($change->get('field'), $new, $types[$change->get('field')]['phptype']);
		$adj->save();

<field key="forecast_oil" dbtype="float" precision="11" phptype="float" null="false" default="0"/>
Подскажите, в чем может крыться причина? Заранее спасибо.
GrinRom
13 апреля 2015, 10:38
modx.pro
1 078
0

Комментарии: 1

GrinRom
13 апреля 2015, 16:16
0
Разобрался. Проблема заключалась в том, что в базе тип был REAL и поменял его вручную на DOUBLE
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1