mysql中decimal与float_MySQL float 与decimal 各中的区别。
想一個(gè)問(wèn)題:
1/3+1/3+1/3=1.0
0.3+0.3+0.3 =0.9
想一想在小數(shù)的世界里要什么表示1/3呢!它的辦法就是取一個(gè)與1/3十分接近的小數(shù)來(lái)代替;如上面例子中的0.3來(lái)代替1/3;這樣問(wèn)題就來(lái)了存進(jìn)去的是3個(gè)1/3取出時(shí)就只有0.9。
也許你感覺(jué)1/3這個(gè)數(shù)太特別了它本來(lái)就有無(wú)數(shù)位,近似值代替也是沒(méi)有辦法的。可是你知道嗎?在二進(jìn)制的世界里0.1這樣的數(shù)也不是可以精確的存儲(chǔ)的(float),如果不明白這點(diǎn)就去看IEEE 754 標(biāo)準(zhǔn)。下面給出一個(gè)0.1的例子。
create table t(x float); insert into t(x) values(0.1);
create table t2(x decimal); insert into t2(0.1);
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
decimal 是以字符方式存儲(chǔ)的,它的精確度不會(huì)丟失。
總結(jié)
以上是生活随笔為你收集整理的mysql中decimal与float_MySQL float 与decimal 各中的区别。的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: xr是什么屏幕
- 下一篇: xsmax前置摄像头模糊怎么办(打死也不