mysqlÖÐdecimalÓ÷¨
decimal Êý¾ÝÀàÐÍÔÚ mysql ÖÐÓÃÓÚ´æ´¢Àο¿¾«¶ÈµÄÊ®½øÖÆÊý×Ö£¬×èÖ¹¾«¶ÈËðʧ¡£ÆäÓ﷨Ϊ decimal(m, d)£¬ÆäÖÐ m Ϊ×î´óÊý×ÖλÊý£¬d ΪСÊýµãÓұߵÄÊý×ÖλÊý¡£Ìصã°üÀ¨×¼È·¶È¡¢Àο¿³¤¶È¡¢Êý¾ÝÍêÕûÐÔ¡£ÊÊÓÃÓÚÐèҪ׼ȷÅÌË㡢׼ȷÕÉÁ¿»òÇ¿ÖÆÖ´ÐÐÌض¨¾«¶ÈºÍ¹æÄ£µÄÊý¾Ý¡£Óë float ºÍ double Ïà±È£¬decimal µÄ¾«¶È¸ü¸ß£¬µ«ËÙÂʽÏÂý£¬³¤¶ÈÀο¿¡£
MySQL ÖÐ DECIMAL Êý¾ÝÀàÐ͵ÄÓ÷¨
DECIMAL Êý¾ÝÀàÐÍÓÃÓÚ´æ´¢Àο¿¾«¶ÈµÄÊ®½øÖÆÊý×Ö¡£Ëü²î±ðÓÚ FLOAT ºÍ DOUBLE ÀàÐÍ£¬ºóÕßʹÓø¡µãÔËË㣬¿ÉÄܻᵼÖ¾«¶ÈËðʧ¡£
Óï·¨
DECIMAL(M, D)
µÇ¼ºó¸´ÖÆ
M£º×î´óÊý×ÖλÊý£¨°üÀ¨Ð¡Êýµã×ó±ßµÄÊý×Ö£©
D£ºÐ¡ÊýµãÓұߵÄÊý×ÖλÊý
ÀýÈ磺
DECIMAL(10, 2)
µÇ¼ºó¸´ÖÆ
´ËÊý¾ÝÀàÐÍ¿ÉÒÔ´æ´¢×î´óֵΪ 99999999.99 µÄÊ®½øÖÆÊý×Ö£¬ÆäÖÐ 8 λÊý×ÖÔÚСÊýµã×ó±ß£¬2 λÊý×ÖÔÚÓұߡ£
Ìصã
׼ȷ£ºDECIMAL ÀàÐʹ洢׼ȷµÄÊ®½øÖÆÊý×Ö£¬×èÖ¹¾«¶ÈËðʧ¡£
Àο¿³¤¶È£ºÊý¾Ý³¤¶ÈÊÇÀο¿µÄ£¬ÓÉ M ºÍ D ¾öÒ飬½ÚÔ¼´æ´¢¿Õ¼ä¡£
Êý¾ÝÍêÕûÐÔ£ºDECIMAL ÀàÐÍÇ¿ÖÆÖ´ÐÐСÊýµãµÄλÖ㬱ÜÃâÊý¾ÝÊäÈë¹ýʧ¡£
ºÎʱʹÓÃ
ʹÓà DECIMAL Êý¾ÝÀàÐÍÊÊÓÃÓÚÒÔÏÂÇéÐΣº
ÐèҪ׼ȷÅÌËãµÄ²ÆÎñÊý¾Ý
ÐèÒª´æ´¢´øСÊýµÄ׼ȷÕÉÁ¿Öµ
ÐèҪǿÖÆÖ´ÐÐÌض¨¾«¶ÈºÍ¹æÄ£µÄÊý¾Ý
Óë FLOAT ºÍ DOUBLE µÄ½ÏÁ¿
ÌØÕ÷ | DECIMAL | FLOAT | DOUBLE |
---|---|---|---|
¾«¶È | ׼ȷ | ½üËÆÖµ | ½üËÆÖµ |
³¤¶È | Àο¿ | ¿É±ä | ¿É±ä |
ËÙÂÊ | ½ÏÂý | ½Ï¿ì | ½Ï¿ì |
ʾÀý
ÒÔÏÂÊÇʹÓà DECIMAL Êý¾ÝÀàÐ͵ÄʾÀý£º
CREATE TABLE orders ( order_id INT NOT NULL AUTO_INCREMENT, total_price DECIMAL(10, 2) NOT NULL ); INSERT INTO orders (total_price) VALUES (123.45); SELECT * FROM orders WHERE total_price > 100.00;
µÇ¼ºó¸´ÖÆ
ÒÔÉϾÍÊÇmysqlÖÐdecimalÓ÷¨µÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡