Собственно невиданно для себя увидил, что decimal есть string!
Это бага или фича или еще не допилили?
Это бага или фича или еще не допилили?

PHP:
<?php
declare(strict_types=1);
/*
create database `php7` default charset 'utf8';
use `php7`;
create table `types` (
`id` int unsigned not null primary key,
`signed_int` int signed,
`unsigned_int` int unsigned,
`signed_float` float signed,
`unsigned_float` float unsigned,
`signed_decimal` decimal(10,2) signed,
`unsigned_decimal` decimal(10,2) unsigned
);
insert into
`types`
(`id`, `signed_int`, `unsigned_int`, `signed_float`, `unsigned_float`, `signed_decimal`, `unsigned_decimal`)
values
('1', '-30', '44', '-300.33', '334.00033', '-324.34', '64.23')
;
*/
$dbh = new PDO( "mysql:host=localhost;dbname=php7;unix_socket=/var/run/mysqld/mysqld.sock", "root" );
$dbh->setAttribute(PDO::MYSQL_ATTR_DIRECT_QUERY, false);
$sth = $dbh->prepare("select * from `types`");
$sth->execute();
$row = $sth->fetchObject("stdClass");
print "Type of `id`:" . gettype( $row->id ) . "\n";
print "Type of `signed_int`:" . gettype( $row->signed_int ) . "\n";
print "Type of `unsigned_int`:" . gettype( $row->unsigned_int ) . "\n";
print "Type of `signed_float`:" . gettype( $row->signed_float ) . "\n";
print "Type of `unsigned_float`:" . gettype( $row->unsigned_float ) . "\n";
print "Type of `signed_decimal`:" . gettype( $row->signed_decimal ) . "\n";
print "Type of `unsigned_decimal`:" . gettype( $row->unsigned_decimal ) . "\n";
Код:
keeper@keeper:/var/www/php7.localhost/httpdocs$ /opt/php/php-7.0 ./index.php
Type of `id`:integer
Type of `signed_int`:integer
Type of `unsigned_int`:integer
Type of `signed_float`:double
Type of `unsigned_float`:double
Type of `signed_decimal`:string
Type of `unsigned_decimal`:string