mysql:16129
From: "yoku ts." <"yoku ts." <yoku0825@xxxxxxxxxx>>
Date: Tue, 3 Jun 2014 11:10:38 +0900
Subject: [mysql 16129] Re: [mysql 16128] MySQLのfloat型の有効桁数について
こんにちは、yoku0825といいます。 内部的にはCのfloatを使っているので、格納はされているけれど丸められているんだと思います。 (↓5.6ですが) mysql56> CREATE TABLE t1 (num float not null, num_20 float(20, 16)); Query OK, 0 rows affected (0.05 sec) mysql56> INSERT INTO t1 VALUES (1.2345678901234567890, 1.2345678901234567890); Query OK, 1 row affected (0.01 sec) mysql56> SELECT * FROM t1; +---------+--------------------+ | num | num_20 | +---------+--------------------+ | 1.23457 | 1.2345678806304932 | +---------+--------------------+ 1 row in set (0.00 sec) mysql56> SELECT num* 10000, num_20* 10000 FROM t1; +--------------------+------------------------+ | num* 10000 | num_20* 10000 | +--------------------+------------------------+ | 12345.678806304932 | 12345.6788063049320000 | +--------------------+------------------------+ 1 row in set (0.00 sec) 掛け算で値が狂うのは、浮動小数点数なのでご愛嬌(?) 表示桁数の制御はこのあたりですかね。。 http://dev.mysql.com/doc/refman/5.6/en/floating-point-types.html yoku0825 2014年6月3日 10:38 ktsa5236@xxxxxxxxxx <ktsa5236@xxxxxxxxxx>: > いつもお世話になっております。ktsaと申します。 > 表題の件について教えていただきたいのですが、 > MySQLのfloat型は、IEEE754に則っているのでしょうか? > 7桁ではなく、常に有効数字6桁までしか保存されないように思います。 > > 環境とテスト内容ですが、 > MySQL5.0.22-community-nt > > データベースはInnoDB > > CREATE TABLE `testtb` ( > `A` tinyint(4) NOT NULL default '0', > `B_dbl` double default NULL, > `C_float` float default NULL, > PRIMARY KEY (`A`) > ) ENGINE=InnoDB DEFAULT CHARSET=sjis; > > Insert into testtb values(11,1.2345678901234567890,1.2345678901234567890); > > を実行する。 > コンソール実行画面結果は、 > > mysql> Insert into testtb > values(11,1.2345678901234567890,1.2345678901234567890); > Query OK, 1 row affected > > mysql> select * from testtb where A=11; > +----+------------------+---------+ > | A | B_dbl | C_float | > +----+------------------+---------+ > | 11 | 1.23456789012346 | 1.23457 | > +----+------------------+---------+ > 1 row in set > とC_float列は7桁目が丸めまれ常に有効数字が6桁になります。 > 他の値でも試しましたが同様でした。 > > よろしくお願いいたします。 >
@ 16128 2014-06-03 10:38 ["ktsa5236@xxxxxxxxxx] MySQLのfloat型の有効桁数について -> @ 16129 2014-06-03 11:10 ┗["yoku ts." <yoku0825] Re: [mysql 16128] MySQLのfloat型の有効桁数について @ 16130 2014-06-09 00:38 ┗["ktsa5236@xxxxxxxxxx] Re: [mysql 16129] Re: [mysql 16128] MySQLのfloat型の有効桁数について @ 16131 2014-06-09 10:31 ┗["yoku ts." <yoku0825] Re: [mysql 16130] Re: [mysql 16129] Re: [mysql 16128] MySQLのfloat型の有効桁数について @ 16132 2014-06-11 11:37 ┗["ktsa5236@xxxxxxxxxx] Re: [mysql 16131] Re: [mysql 16130] Re: [mysql 16129] Re: [mysql 16128] MySQLのfloat型の有効桁数について