Перевести результат математического дейтсвия на php из integer во float, и записать в бд

Есть в mySQL таблица, в которой в 4-х столбцах хранятся числа (integer). Есть пятый столбец, пока что пустой, он имеет тип float. Мне на php необходимо брать эти четыре целых числа, искать среднее арифметическое (естественно, оно получится не целым), и записывать результат в столбец, который float.
Вроде простое действие, но результат у меня при записи в БД всегда получается целым. Пробовал: $res = floatval($res) и $res = (float)$res и даже $res = doubleval($res), ничего не выходит.
UPD: и вычислять $res = (floatval($a) + floatval($b) + floatval($c) + floatval($d)) / 4 тоже пробовал. По-всякому пробовал, не выходит.
UPD: Структура таблицы:

id (int) | s1 (int) | s2 (int) | s3 (int) | s4 (int) | res (float)

Я беру в массив одну строку (если точнее, то по условию ID = N, не важно), и делаю простейшее мат вычисление

$res = ($arr['s1'] + $arr['s2'] + $arr['s3'] + $arr['s4']) / 4

И потом этот $res пишу в базу просто UPDATE.

mysql_query("UPDATE ... SET res = '$res' WHERE ...")

И вот в эту формулу я куда уже не подставлял и floatval и doubleval и по всякому по-разному - все равно, пишется в базу целое число.


Ответы (1 шт):

Автор решения: HardlinePeak

Начнём с того что (если я не ошибаюсь) среднее арифметическое целых чисел это целое число) И закончим на том что если вам очень надо, вы можете сделать так:

<?php
$result = ($arr["s1"] + $arr["s2"] + $arr["s3"] + $arr["s4"]) / 4;
$result = (float) $result;
mysql_query("UPDATE ... SET res='$res' WHERE ...");

Либо то же самое, но на строку короче:

<?php
$result ($arr["s1"] + $arr["s2"] + $arr["s3"] + $arr["s4"]) / 4;
mysql_query("UPDATE ... SET res='" . ((float) $res) . "' WHERE ...");
→ Ссылка