ホームページ バックエンド開発 PHPチュートリアル mysqlのfloat型が非常におかしいのですが、どうすれば解決できますか?

mysqlのfloat型が非常におかしいのですが、どうすれば解決できますか?

Jun 13, 2016 am 11:58 AM
decimal float mysql nbsp

mysql の float 型は非常に奇妙です
3 つのフィールドがあるテーブル テストがあります。
uid、1、2、uid は int 型、自動インクリメント、1 つのフィールドは float (3, 2)、および2 つのフィールドは float(5,2) です。

ロジックによれば、1 つのフィールド、つまり最初の 3 桁と最後の 2 桁に 123.12 のような数値を挿入できます。
2 つのフィールドでは、最初の 5 桁と最後の 2 桁のビットを挿入できますが、テスト値 (null,123.12,12345.12) に

挿入を挿入しましたが、挿入は成功しました。データが異なります。これはなぜですか?


値 98.12 (最初の 2 桁と小数点 2 桁) を挿入する必要がある場合、このフィールドは float 型に設定する必要があります。 ?
------解決策----------------
1. MySQL の定義が間違っています。非標準構文の使用を許可します: FLOAT(M,D)、REAL(M,D)、または DOUBLE PRECISION(M,D)。ここで、「(M,D)」とは、小数点以下D桁の合計M桁の整数を表示する値を意味します。たとえば、FLOAT(7,4) として定義された列は、-999.9999 と表示される可能性があります。 MySQL は保存時に値を四捨五入するため、FLOAT(7,4) カラムに 999.00009 を挿入すると、おおよその結果は 999.0001 になります。

2. 精度要件がある場合は、
DECIMAL 型と NUMERIC 型は MySQL では同じ型とみなされます。これらは、通貨データなど、正確な精度が必要な値を保持するために使用されます。この型の列を宣言するときは、精度と位取りを指定できます (通常はそうします)。たとえば、
salary DECIMAL(5,2)
この例では、5 が精度、2 が位取りです。精度は値を保存できる桁数を示し、スケールは小数点以下の桁数を保存できます。



-----解決策---------正の数を制限する属性を設定する必要があります。

------解決策------------------

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

MySQL 8.4 で mysql_native_password がロードされていないエラーを修正する方法 MySQL 8.4 で mysql_native_password がロードされていないエラーを修正する方法 Dec 09, 2024 am 11:42 AM

MySQL 8.4 (2024 年時点の最新の LTS リリース) で導入された主な変更の 1 つは、「MySQL Native Password」プラグインがデフォルトで有効ではなくなったことです。さらに、MySQL 9.0 ではこのプラグインが完全に削除されています。 この変更は PHP および他のアプリに影響します

PHPを使用してMySQLテーブルからデータを削除するにはどうすればよいですか? PHPを使用してMySQLテーブルからデータを削除するにはどうすればよいですか? Jun 05, 2024 pm 12:40 PM

PHP には、MySQL テーブル内のデータを削除する次のメソッドが用意されています。 DELETE ステートメント: テーブルから条件に一致する行を削除するために使用されます。 TRUNCATETABLE ステートメント: 自動インクリメントされる ID を含む、テーブル内のすべてのデータをクリアするために使用されます。実際のケース: HTML フォームと PHP コードを使用して、データベースからユーザーを削除できます。フォームはユーザー ID を送信し、PHP コードは DELETE ステートメントを使用して ID に一致するレコードを users テーブルから削除します。

PHPがMySQLに接続された後、ページは空白です。無効なDIE()関数の理由は何ですか? PHPがMySQLに接続された後、ページは空白です。無効なDIE()関数の理由は何ですか? 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)アーキテクチャWebサイトのニーズ...

PCとモバイル側で同じページを共有し、キャッシュの問題を処理する方法は? PCとモバイル側で同じページを共有し、キャッシュの問題を処理する方法は? Apr 01, 2025 pm 01:57 PM

PCとモバイル側で同じページを共有し、キャッシュの問題を処理する方法は? Nginxでは、Baotaの背景を使用して構築されたPHP MySQL環境、PCサイドの作成方法と...

PHPの楽観的なロックとトランザクション控除残高が組み合わされて失敗しました:バランスが並行性の状況で正しく控除されるようにする方法は? PHPの楽観的なロックとトランザクション控除残高が組み合わされて失敗しました:バランスが並行性の状況で正しく控除されるようにする方法は? Mar 31, 2025 pm 11:42 PM

この記事のPHPの楽観的ロックおよびトランザクションと組み合わせて残高を控除する問題の詳細な説明では、PHP、楽観的ロック、データベーストランザクションのみを使用したバランス控除を詳細に分析します...

Redis Exporter サービスを使用した Redis ドロップレットの監視 Redis Exporter サービスを使用した Redis ドロップレットの監視 Jan 06, 2025 am 10:19 AM

Redis データベースを効果的に監視することは、最適なパフォーマンスを維持し、潜在的なボトルネックを特定し、システム全体の信頼性を確保するために不可欠です。 Redis Exporter Service は、Prometheus を使用して Redis データベースを監視するように設計された堅牢なユーティリティです。 このチュートリアルでは、Redis Exporter Service の完全なセットアップと構成について説明し、監視ソリューションをシームレスに確立できるようにします。このチュートリアルに従うことで、Redis データベースのパフォーマンス メトリクスを効果的に監視するための完全に運用可能な監視セットアップを実現できます。

See all articles