데이터 베이스 MySQL 튜토리얼 MySQL 中与浮点比较有关问题的解决_MySQL

MySQL 中与浮点比较有关问题的解决_MySQL

Jun 01, 2016 pm 01:57 PM
소수 이유

    注意,下述部分主要与DOUBLE和FLOAT列相关,原因在于浮点数的不准确本质。MySQL使用64位十进制数值的精度执行DECIMAL操作,当处理DECIMAL列时,应能解决大多数常见的不准确问题。

浮点数有时会导致混淆,这是因为它们无法以准确值保存在计算机体系结构中。你在屏幕上所看到的值通常不是数值的准确值。对于FLOAT和DOUBLE列类型,情况就是如此。DECIMAL列能保存具有准确精度的值,这是因为它们是由字符串表示的。

在下面的示例中,介绍了使用DOUBLE时的问题:


mysql> CREATE TABLE t1 (i INT, d1 DOUBLE, d2 DOUBLE);
mysql> INSERT INTO t1 VALUES (1, 101.40, 21.40), (1, -80.00, 0.00),
-> (2, 0.00, 0.00), (2, -13.20, 0.00), (2, 59.60, 46.40),
-> (2, 30.40, 30.40), (3, 37.00, 7.40), (3, -29.60, 0.00),
-> (4, 60.00, 15.40), (4, -10.60, 0.00), (4, -34.00, 0.00),
-> (5, 33.00, 0.00), (5, -25.80, 0.00), (5, 0.00, 7.20),
-> (6, 0.00, 0.00), (6, -51.40, 0.00);
 
mysql> SELECT i, SUM(d1) AS a, SUM(d2) AS b
-> FROM t1 GROUP BY i HAVING a b;
 
+------+-------+------+
| i    | a     | b    |
+------+-------+------+
|    1 |  21.4 | 21.4 |
|    2 |  76.8 | 76.8 |
|    3 |   7.4 |  7.4 |
|    4 |  15.4 | 15.4 |
|    5 |   7.2 |  7.2 |
|    6 | -51.4 |    0 |
+------+-------+------+

结果是正确的。尽管前5个记录看上去不应能进行比较测试(a和b的值看上去没有什么不同),但它们能进行比较,这是因为显示的数值间的差异在十分位左右,具体情况取决于计算机的体系结构。

如果列d1和d2定义为DECIMAL而不是DOUBLE,SELECT查询的结果仅包含1行,即上面显示的最后1行。

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 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 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

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

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

스크린캐스팅이 실패하는 이유는 무엇입니까? '초보자를 위한 필독서: 무선 스크린캐스팅 연결 실패 문제를 해결하는 방법' 스크린캐스팅이 실패하는 이유는 무엇입니까? '초보자를 위한 필독서: 무선 스크린캐스팅 연결 실패 문제를 해결하는 방법' Feb 07, 2024 pm 05:03 PM

무선 스크린캐스팅이 연결에 실패하는 이유는 무엇입니까? 무선 화면 미러링 사용 시 연결이 되지 않는다는 친구들의 신고가 접수되었습니다. 무슨 일인가요? 무선 화면 미러링 연결에 실패하면 어떻게 해야 하나요? 컴퓨터, TV, 휴대폰이 동일한 WiFi 네트워크에 연결되어 있는지 확인하세요. 화면 미러링 소프트웨어가 제대로 작동하려면 장치가 동일한 네트워크에 있어야 하며 Quick Screen Mirroring도 예외는 아닙니다. 따라서 네트워크 설정을 빠르게 확인하시기 바랍니다. 화면 미러링 기능이 지원되는지 확인하는 것이 중요합니다. 스마트 TV와 휴대폰은 일반적으로 DLNA 또는 AirPlay 기능을 지원합니다. 스크린캐스트 기능이 지원되지 않으면 스크린캐스트가 불가능합니다. 기기가 올바르게 연결되었는지 확인하세요. 동일한 WiFi에 여러 기기가 있을 수 있습니다. 화면을 공유하려는 기기에 연결되어 있는지 확인하세요. 4. 네트워크가

WPS Office가 인쇄 작업을 시작할 수 없는 원인은 무엇입니까? WPS Office가 인쇄 작업을 시작할 수 없는 원인은 무엇입니까? Mar 20, 2024 am 09:52 AM

프린터를 LAN에 연결하고 인쇄 작업을 시작하면 몇 가지 사소한 상황이 발생할 수 있습니다. 예를 들어 "wpsoffice가 인쇄 작업을 시작할 수 없습니다..."라는 문제가 가끔 발생하여 파일을 인쇄할 수 없는 등의 문제가 발생할 수 있습니다. ., 작업과 공부가 지연되고 나쁜 영향을 미치게 됩니다. wpsoffice가 인쇄 작업을 시작할 수 없는 문제를 해결하는 방법을 알려 드리겠습니다. 물론 소프트웨어를 업그레이드하거나 드라이버를 업그레이드하여 문제를 해결할 수 있지만, 아래에서는 몇 분 안에 해결할 수 있는 솔루션을 제공하겠습니다. 우선, wpsoffice가 인쇄 작업을 시작할 수 없어 인쇄할 수 없는 현상을 발견했습니다. 이 문제를 해결하려면 하나씩 조사해야 합니다. 또한 프린터의 전원이 켜져 있고 연결되어 있는지 확인하세요. 일반적으로 비정상적인 연결로 인해

PHP 500 오류에 대한 종합 안내서: 원인, 진단 및 수정 사항 PHP 500 오류에 대한 종합 안내서: 원인, 진단 및 수정 사항 Mar 22, 2024 pm 12:45 PM

PHP 500 오류에 대한 종합 가이드: 원인, 진단 및 수정 사항 PHP 개발 중에 HTTP 상태 코드 500과 관련된 오류가 자주 발생합니다. 이 오류는 일반적으로 "500InternalServerError"라고 불리며, 이는 서버 측에서 요청을 처리하는 동안 알 수 없는 오류가 발생했음을 의미합니다. 이 기사에서는 PHP500 오류의 일반적인 원인, 진단 방법, 수정 방법을 살펴보고 참조할 수 있는 구체적인 코드 예제를 제공합니다. 1.500 오류의 일반적인 원인 1.

PHP에서 16진수 문자열을 숫자로 변환하는 방법 PHP에서 16진수 문자열을 숫자로 변환하는 방법 Oct 26, 2021 pm 06:36 PM

PHP에서 16진수 문자열을 숫자로 변환하는 방법: 1. "hexdec(16진수 문자열)" 구문과 함께 hexdec() 함수를 사용합니다. 2. "bindec(16진수 문자열)" 구문과 함께 base_convert() 함수를 사용합니다. , 16, 10)”.

Apple 휴대폰 충전이 왜 이렇게 느린가요? Apple 휴대폰 충전이 왜 이렇게 느린가요? Mar 08, 2024 pm 06:28 PM

일부 사용자는 Apple 휴대폰을 사용할 때 충전 속도가 느려질 수 있습니다. 이 문제의 원인은 여러 가지가 있습니다. 충전 장치의 전력 부족, 장치 고장, 휴대폰의 USB 인터페이스 문제, 심지어 배터리 노화 및 기타 요인으로 인해 발생할 수 있습니다. Apple 휴대폰 충전 속도가 매우 느린 이유는 무엇입니까? 답: 충전 장비 문제, 휴대폰 하드웨어 문제, 휴대폰 시스템 문제입니다. 1. 사용자가 상대적으로 낮은 전력의 충전 장비를 사용할 경우 휴대폰 충전 속도가 매우 느려집니다. 2. 타사의 열악한 충전기나 충전 케이블을 사용하면 충전 속도가 느려질 수 있습니다. 3. 사용자는 공식 정품 충전기를 사용하거나, 인증된 일반 고출력 충전기로 교체하는 것을 권장합니다. 4. 사용자의 휴대폰 하드웨어에 문제가 있습니다. 예를 들어 휴대폰의 USB 인터페이스에 연결할 수 없습니다.

win11 블루스크린의 근본 원인을 밝히다 win11 블루스크린의 근본 원인을 밝히다 Jan 04, 2024 pm 05:32 PM

많은 친구들이 시스템 블루 스크린 문제에 직면했다고 생각하지만, win11 블루 스크린의 원인이 무엇인지는 알 수 없습니다. 실제로 시스템 블루 스크린의 원인은 여러 가지가 있으며, 순서대로 조사하고 해결할 수 있습니다. win11 블루 스크린의 원인: 1. 메모리 부족 1. 너무 많은 소프트웨어를 실행하거나 게임이 너무 많은 메모리를 소비할 때 발생할 수 있습니다. 2. 특히 지금은 win11에 메모리 오버플로 버그가 있어서 자주 마주칠 확률이 높습니다. 3. 이때 가상 메모리를 설정하여 문제를 해결할 수 있지만 가장 좋은 방법은 메모리 모듈을 업그레이드하는 것입니다. 2. CPU 오버클럭 및 과열 1. CPU 문제의 원인은 사실 메모리 문제와 유사합니다. 2. 후처리, 모델링, 기타 소프트웨어를 사용하거나 대규모 게임을 할 때 주로 발생합니다. 3. CPU 소모가 너무 높으면 블루 스크린이 나타납니다.

win11이 자동으로 종료되는 이유는 무엇입니까? win11이 자동으로 종료되는 이유는 무엇입니까? Jan 01, 2024 pm 11:39 PM

최근 친구가 시스템 업데이트 후 Win11이 자동으로 종료되는 문제에 직면했습니다. 많은 경우 게임을 할 때 발생하는 원인을 알 수 없습니다. 실제로 이는 컴퓨터 구성이 부족하거나 시스템 오류로 인해 발생할 수 있습니다. 원인과 해결 방법을 살펴보겠습니다. win11이 자동으로 종료되는 이유는 무엇입니까? 1. 구성이 부족합니다. 1. Windows 11 시스템은 Windows 10보다 CPU 및 메모리 요구 사항이 높습니다. 2. 특히 대규모 게임이나 기타 작업을 실행할 때 자동 종료가 매우 쉽습니다. 3. 사용자는 시작 메뉴 아이콘을 마우스 오른쪽 버튼으로 클릭하고 "작업 관리자" 페이지를 열어 자동 종료 전 사용 상태를 복원할 수 있습니다. 4. 이 페이지에서는 CPU, 메모리, 디스크를 확인해 보겠습니다.

HTTP 상태 코드 550의 원인과 해결 방법 문제 해결 HTTP 상태 코드 550의 원인과 해결 방법 문제 해결 Feb 20, 2024 am 09:49 AM

HTTP 상태 코드 550의 원인과 해결 방법 살펴보기 소개: 네트워크 통신에서 HTTP 상태 코드는 중요한 역할을 하며 서버가 요청을 처리하는 결과를 나타내는 데 사용됩니다. 그중 HTTP 상태 코드 550은 일반적으로 서버가 요청 실행을 거부하는 것과 관련된 비교적 드문 상태 코드입니다. 이 문서에서는 HTTP 상태 코드 550의 원인을 살펴보고 해결 방법을 제공합니다. 1. HTTP 상태 코드의 기본 개념 HTTP 상태 코드 550을 이해하기 전에 먼저 HTTP 상태 코드의 기본 개념을 간략하게 이해하겠습니다.

See all articles