ホームページ データベース mysql チュートリアル MySQL 中与浮点比较有关问题的解决_MySQL

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

Jun 01, 2016 pm 01:57 PM
10進数 理由

    注意,下述部分主要与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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

スクリーンキャストが失敗する原因は何ですか?「初心者必読:ワイヤレススクリーンキャスト接続が失敗する問題の解決方法」 スクリーンキャストが失敗する原因は何ですか?「初心者必読:ワイヤレススクリーンキャスト接続が失敗する問題の解決方法」 Feb 07, 2024 pm 05:03 PM

ワイヤレス スクリーンキャストが接続に失敗するのはなぜですか?何人かの友人が、ワイヤレス画面ミラーリングを使用すると接続に失敗すると報告しています。何が起こっているのでしょうか?ワイヤレス画面ミラーリング接続に失敗した場合はどうすればよいですか?パソコン、テレビ、携帯電話が同じWiFiネットワークに接続されているか確認してください。画面ミラーリング ソフトウェアが正しく動作するには、デバイスが同じネットワーク上にある必要がありますが、クイック スクリーン ミラーリングも例外ではありません。したがって、すぐにネットワーク設定を確認してください。画面ミラーリング機能がサポートされているかどうかを判断することが重要です。スマート TV と携帯電話は通常、DLNA または AirPlay 機能をサポートしています。スクリーンキャスト機能に対応していない場合、スクリーンキャストはできません。デバイスが正しく接続されているか確認する: 同じ WiFi に複数のデバイスが存在する可能性があります。画面を共有したいデバイスに接続していることを確認してください。 4. ネットワークが

WPS Office が印刷ジョブを開始できない原因は何ですか? WPS Office が印刷ジョブを開始できない原因は何ですか? Mar 20, 2024 am 09:52 AM

プリンターをローカルエリアネットワークに接続して印刷ジョブを開始すると、「wpsoffice で印刷ジョブを開始できません...」という問題が発生し、ファイルを印刷できなくなるなど、軽微な問題が発生することがあります。 、仕事や勉強に遅れが生じ、悪影響を及ぼします。wpsoffice で印刷ジョブを開始できない問題の解決方法を説明します。もちろん、ソフトウェアをアップグレードしたりドライバーをアップグレードしたりして問題を解決することもできますが、それには長い時間がかかります。まず、wpsoffice が印刷ジョブを開始できず、結果として印刷できないことに気付きました。この問題を解決するには、一つ一つ調査する必要があります。また、プリンターの電源が入っており、接続されていることを確認してください。一般に、接続異常により次のようなことが起こります。

PHPで16進数の文字列を数値に変換する方法 PHPで16進数の文字列を数値に変換する方法 Oct 26, 2021 pm 06:36 PM

PHP で 16 進文字列を数値に変換する方法: 1. hexdec() 関数を構文「hexdec(16 進文字列)」で使用します; 2. Base_convert() 関数を構文「bindec(16 進文字列)」で使用します。 、16、10)」。

PHP 500 エラーの総合ガイド: 原因、診断、修正 PHP 500 エラーの総合ガイド: 原因、診断、修正 Mar 22, 2024 pm 12:45 PM

PHP 500 エラーの包括的なガイド: 原因、診断、および修正 PHP 開発中に、HTTP ステータス コード 500 のエラーが頻繁に発生します。このエラーは通常「500InternalServerError」と呼ばれ、サーバー側でのリクエストの処理中に不明なエラーが発生したことを意味します。この記事では、PHP500 エラーの一般的な原因、診断方法、修正方法を検討し、参照用の具体的なコード例を示します。 1.500 エラーの一般的な原因 1.

win11のブルースクリーンの根本原因を明らかにする win11のブルースクリーンの根本原因を明らかにする Jan 04, 2024 pm 05:32 PM

多くの友人がシステム ブルー スクリーンの問題に遭遇したと思いますが、Win11 ブルー スクリーンの原因がわかりません。実際、システム ブルー スクリーンには多くの原因があり、順番に調査して解決することができます。 win11 ブルースクリーンの原因: 1. メモリ不足 1. 実行するソフトウェアが多すぎる場合、またはゲームがメモリを消費しすぎる場合に発生する可能性があります。 2. 特に現在win11ではメモリオーバーフローのバグがあるので遭遇する可能性が非常に高いです。 3. 現時点では、仮想メモリを設定して問題を解決することもできますが、最善の方法はメモリ モジュールをアップグレードすることです。 2. CPU のオーバークロックと過熱 1. CPU の問題の原因は、実際にはメモリの問題の原因と似ています。 2. 通常、後処理、モデリング、その他のソフトウェアを使用しているとき、または大規模なゲームをプレイしているときに発生します。 3. CPU 消費量が多すぎる場合、ブルー スクリーンが表示されます。

Apple 携帯電話の充電が非常に遅いのはなぜですか? Apple 携帯電話の充電が非常に遅いのはなぜですか? Mar 08, 2024 pm 06:28 PM

一部のユーザーは、Apple の携帯電話を使用するときに充電速度が遅くなることがあります。この問題にはさまざまな理由があり、充電デバイスの電力低下、デバイスの故障、携帯電話の USB インターフェイスの問題、さらにはバッテリーの劣化などの要因が考えられます。 Apple 携帯電話の充電が非常に遅いのはなぜですか? 答え: 充電機器の問題、携帯電話のハードウェアの問題、携帯電話のシステムの問題です。 1. ユーザーが比較的低電力の充電機器を使用すると、携帯電話の充電速度が非常に遅くなります。 2. サードパーティ製の低品質の充電器や充電ケーブルを使用すると、充電が遅くなることがあります。 3. ユーザーは、正規の純正充電器を使用するか、通常の認定された高出力充電器と交換することをお勧めします。 4. 携帯電話の USB インターフェイスに接続できないなど、ユーザーの携帯電話のハードウェアに問題があります。

win10ドライバーのインストール失敗の原因と分析 win10ドライバーのインストール失敗の原因と分析 Jan 02, 2024 pm 04:57 PM

Windows 10 ドライバーをインストールするときにインストール失敗の問題に遭遇した友人もいますが、失敗の原因や解決方法がわかりませんでした。この問題にはいくつかの異なる理由が考えられます。以下で調べてください。 win10ドライバーのインストールが失敗する理由: 1. システムバージョン 現在、Windows 10システムにはドライバーを自動的にインストールする機能がすでにあります。この機能の導入により、ユーザーはシステムインストール時にドライバーを手動で検索してインストールする必要がなくなり、システムが適切なドライバーを自動的に検出してインストールするため、より便利になります。ドライバーのインストールが失敗した場合の解決策の 1 つは、システムを更新してみることです。これにより、システム関連の問題が修正され、ドライバーが次のことを行えるようになる可能性があります。

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