데이터 베이스 MySQL 튜토리얼 MySQL中的float和decimal类型_MySQL

MySQL中的float和decimal类型_MySQL

Jun 01, 2016 pm 01:36 PM
double mysql 최대

bitsCN.com

MySQL中的float和decimal类型

 

float,double容易产生误差,对精确度要求比较高时,建议使用decimal来存,decimal在mysql内存是以字符串存储的,用于定义货币要求精确度高的数据。在数据迁移中,float(M,D)是非标准定义,最好不要这样使用。M为精度,D为标度。 

 

mysql> create table t1(c1 float(10,2), c3 decimal(10,2)); 

Query OK, 0 rows affected (0.02 sec) 

 

mysql> insert into t1 values(1234567.23, 1234567.23); 

Query OK, 1 row affected (0.01 sec) 

 

mysql> select * from t1; 

+------------+------------+ 

| c1 | c3 | 

+------------+------------+ 

| 1234567.25 | 1234567.23 | 

+------------+------------+ 

1 row in set (0.02 sec) 

 

mysql> insert into t1 values(9876543.21, 9876543.12); 

Query OK, 1 row affected (0.00 sec) 

 

mysql> 

mysql> select * from t1; 

+------------+------------+ 

| c1 | c3 | 

+------------+------------+ 

| 1234567.25 | 1234567.23 | 

| 9876543.00 | 9876543.12 | 

+------------+------------+ 

2 rows in set (0.00 sec) 

 

不定义fload, double的精度和标度时,存储按给出的数值存储,这于OS和当前的硬件有关。 

 

decimal默认为decimal(10,0) 

 

因为误差问题,在程序中,少用浮点数做=比较,可以做range比较。如果数值比较,最好使用decimal类型。 

 

精度中,符号不算在内: 

 

 

mysql> insert into t1 values(-98765430.21, -98765430.12); 

Query OK, 1 row affected (0.01 sec) 

 

mysql> select * from t1; 

+--------------+--------------+ 

| c1 | c3 | 

+--------------+--------------+ 

| 1234567.25 | 1234567.23 | 

| 9876543.00 | 9876543.12 | 

| -98765432.00 | -98765430.12 | 

+--------------+--------------+ 

3 rows in set (0.00 sec) 

 

float占4个字节,double占8个字节,decimail(M,D)占M+2个字节。 

 

decimal 类型可以精确地表示非常大或非常精确的小数。大至 1028(正或负)以及有效位数多达 28 位的数字可以作为 decimal类型存储而不失其精确性。该类型对于必须避免舍入错误的应用程序(如记账)很有用。

 

float是浮点数,不能指定小数位。 

decimal是精确数,可以指定精度。 

对mysql 5来说 decimal(p,s)中p最大为65,S最大为30 

decimal数据类型最多可存储 38 个数字,它存储了一个准确(精确)的数字表达法,不存储值的近似值。 

 

当数据值一定要按照指定精确存储时,可以用带有小数的decimal数据类型来存储数字。 

float和real数据类型被称为近似的数据类型。不存储精确值.当要求精确的数字状态时,比如在财务应用程序中,在那些需要舍入的操作中,或在等值核对的操作中,就不使用这些数据类型。这时就要用integer、decimal、money或smallmone数据类型。 

 

在 WHERE 子句搜索条件中(特别是 = 和 运算符),应避免使用float或real列。最好限制使用float和real列做> 或 bitsCN.com

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PHP가 MySQL에 연결된 후 페이지가 비어 있습니다. 유효하지 않은 다이 () 함수의 이유는 무엇입니까? PHP가 MySQL에 연결된 후 페이지가 비어 있습니다. 유효하지 않은 다이 () 함수의 이유는 무엇입니까? Apr 01, 2025 pm 03:03 PM

PHP가 MySQL에 연결 한 후 페이지가 비어 있고 Die () 함수가 실패한 이유가 있습니다. PHP와 MySQL 데이터베이스 간의 연결을 배울 때는 종종 혼란스러운 것들이 발생합니다 ...

램프 아키텍처에서 Node.js 또는 Python 서비스를 효율적으로 통합하는 방법은 무엇입니까? 램프 아키텍처에서 Node.js 또는 Python 서비스를 효율적으로 통합하는 방법은 무엇입니까? Apr 01, 2025 pm 02:48 PM

많은 웹 사이트 개발자는 램프 아키텍처에서 Node.js 또는 Python 서비스를 통합하는 문제에 직면 해 있습니다. 기존 램프 (Linux Apache MySQL PHP) 아키텍처 웹 사이트 요구 사항 ...

PC 및 모바일 측면에서 동일한 페이지를 공유하고 캐시 문제를 처리하는 방법은 무엇입니까? PC 및 모바일 측면에서 동일한 페이지를 공유하고 캐시 문제를 처리하는 방법은 무엇입니까? Apr 01, 2025 pm 01:57 PM

PC 및 모바일 측면에서 동일한 페이지를 공유하고 캐시 문제를 처리하는 방법은 무엇입니까? Baota 배경, PC 측면을 만드는 방법 및 ...

데비안 문자열은 여러 브라우저와 호환됩니다 데비안 문자열은 여러 브라우저와 호환됩니다 Apr 02, 2025 am 08:30 AM

"Debiantrings"는 표준 용어가 아니며 구체적인 의미는 여전히 불분명합니다. 이 기사는 브라우저 호환성에 직접 언급 할 수 없습니다. 그러나 "Debiantrings"가 Debian 시스템에서 실행되는 웹 응용 프로그램을 지칭하는 경우 브라우저 호환성은 응용 프로그램 자체의 기술 아키텍처에 따라 다릅니다. 대부분의 최신 웹 응용 프로그램은 크로스 브라우저 호환성에 전념합니다. 이는 웹 표준에 따라 웹 표준과 잘 호환 가능한 프론트 엔드 기술 (예 : HTML, CSS, JavaScript) 및 백엔드 기술 (PHP, Python, Node.js 등)을 사용하는 데 의존합니다. 응용 프로그램이 여러 브라우저와 호환되도록 개발자는 종종 브라우저 크로스 테스트를 수행하고 응답 성을 사용해야합니다.

Docker는 LNMP 환경을 구축합니다. 단일 Dockerfile 또는 Docker가 더 나은가? Docker는 LNMP 환경을 구축합니다. 단일 Dockerfile 또는 Docker가 더 나은가? Apr 01, 2025 pm 02:09 PM

Dockerfile LNMP 환경 학습을위한 Dockerfile 모범 사례 Docker 동안 많은 개발자가 자체 LNMP (Linux, Nginx, MySQL, PHP)를 구축하려고합니다.

Redis 대기열과 MySQL 안정성 비교 : Redis가 데이터 손실에 발생하는 이유는 무엇입니까? Redis 대기열과 MySQL 안정성 비교 : Redis가 데이터 손실에 발생하는 이유는 무엇입니까? Apr 01, 2025 pm 02:24 PM

Redis 대기열과 MySQL 안정성 비교 : Redis가 데이터 손실에 발생하는 이유는 무엇입니까? PHP7.2 및 ThinkPHP 프레임 워크를 사용하여 개발 환경에서 우리는 종종 협력의 선택에 직면 해 있습니다 ...

Django와 MySQL을 사용하여 수십만에서 2 백만에서 2 백만 건의 데이터를 처리 할 때, 4 코어 8G 메모리 서버는 어떤 종류의 캐시 솔루션을 선택해야합니까? Django와 MySQL을 사용하여 수십만에서 2 백만에서 2 백만 건의 데이터를 처리 할 때, 4 코어 8G 메모리 서버는 어떤 종류의 캐시 솔루션을 선택해야합니까? Apr 01, 2025 pm 11:36 PM

Django 및 MySQL을 사용하여 Django 및 MySQL 데이터베이스를 사용할 때 큰 데이터 볼륨을 처리합니다. 데이터 볼륨이 수십만에서 2 백만에 도달하면 ...

See all articles