me_javascript スキルで JavaScript の浮動小数点精度を学びましょう
ほとんどのプログラミング言語には複数の数値データ型がありますが、JavaScript には 1 つしかありません。 typeof 演算子を使用して数値の型を確認できます。整数であるか浮動小数点数であるかに関係なく、JavaScript は単純に数値として分類します。
typeof 17; //number typeof 98.6; //number typeof -21.3; //number
実際、JavaScript の数値はすべて倍精度浮動小数点数です。これらは、IEEE754 標準で指定されている 64 ビットでエンコードされた数値 (「double」) です。この事実を見て、JavaScript が整数をどのように表現するのか疑問に思われる場合は、倍精度浮動小数点数は最大 53 桁の精度の整数を完全に表現できることを思い出してください。 –9 007 199 254 740 992 (-253) から 9 007 199 254 740 992 (253) までのすべての整数は、有効な倍精度浮動小数点数です。したがって、JavaScript には明らかな整数型が存在しないにもかかわらず、整数演算は完全に可能です。
ほとんどの算術演算子は、整数、実数、またはその両方の組み合わせを使用して計算を実行できます。
0.1 * 0.9; //0.19 -99 + 100; //1 21- 12.3; //8.7 2.5 /5; //0.5 21%8; //5
ただし、ビット算術演算子は特殊です。 JavaScript はオペランドを浮動小数点数として直接操作しませんが、操作を実行する前にオペランドを暗黙的に 32 ビット整数に変換します。 (正確には、整数の 32 ビット ビッグ エンディアン 2 の補数表現に変換されます。) ビットごとの OR 式を例に挙げます。
8|1; //9
一見単純な式でも、実際には操作を完了するにはいくつかの手順が必要です。前に述べたように、JavaScript の数値 8 と 1 は両方とも倍精度浮動小数点数です。ただし、32 ビット 0 と 1 のシーケンスである 32 ビット整数として表すこともできます。整数 8 は、次のように 32 ビットのバイナリ シーケンスとして表されます。
0000000000000000000000000001000
数値型の toString メソッドを使用して自分で表示することもできます。
(8).toString(2) //"1000"
toString メソッドのパラメータは、変換基数を指定します。この例は基数 2 (つまりバイナリ) で表されます。結果の値では、左側の余分な 0 (ビット) が最終値に影響しないため省略されます。
整数 1 は、次のように 32 ビット バイナリとして表されます。
00000000000000000000000000000001 ビットごとの OR 式は 2 つのビット シーケンスを結合します。演算に含まれる 2 ビットのいずれか 1 つが 1 である限り、演算結果のビットは 1 になります。結果をビットパターンで表現すると以下のようになります:
0000000000000000000000000001001 このシーケンスは整数 9 を表します。標準ライブラリ関数 parseInt を使用して検証することもできますが、基数 2 も使用します:
parseInt("1000", 2); //9
浮動小数点数に関する最後の警告は、浮動小数点数には常に注意する必要があるということです。浮動小数点数はよく知られているように思えるかもしれませんが、不正確であることで有名です。一見単純な算術演算でも、誤った結果が生成されることがあります。
0.1 0.2 0.300000000000004 64 ビットの精度は非常に高いですが、倍精度浮動小数点数は限られた数値セットのみを表すことができ、実数セット全体を表すことはできません。浮動小数点演算は、最も近い表現可能な実数に丸められた近似結果のみを生成できます。一連の操作を実行すると、丸め誤差が蓄積され、結果の精度がますます低くなります。丸めによって、通常予期される算術の法則から予期しない逸脱が生じる可能性もあります。たとえば、実数は結合法則を満たします。これは、任意の実数 x、y、z、(x y) z = x (y z) が常に満たされることを意味します。
ただし、浮動小数点数の場合は、常にそうとは限りません。
(0.1+0.2)+0.3; //0.60000000000000001 0.1+(0.2+ 0.3); //0.6
整数演算の場合、丸め誤差を心配する必要はありませんが、すべての計算は -253 から 253 までの整数にのみ適用されることに注意する必要があります。
ヒント
- JavaScript の数値はすべて倍精度浮動小数点数です。
- JavaScript の整数は倍精度浮動小数点数のサブセットにすぎず、別個のデータ型ではありません
- ビット演算子は、数値を 32 ビットの符号付き整数として扱います。
上記は JavaScript における浮動小数点数の紹介であり、浮動小数点演算の精度トラップに常に注意する必要があります。この記事が皆さんの学習に役立つことを願っています。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 はじめに: 技術の継続的な発展により、音声認識技術は人工知能の分野の重要な部分になりました。 WebSocket と JavaScript をベースとしたオンライン音声認識システムは、低遅延、リアルタイム、クロスプラットフォームという特徴があり、広く使用されるソリューションとなっています。この記事では、WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法を紹介します。

この記事では、PHP の浮動小数点数の四捨五入方法について詳しく解説しますが、非常に実践的だと編集者が考えたので、参考として共有しますので、この記事を読んで何かを得ることができれば幸いです。 PHP 浮動小数点丸めの概要 コンピュータでは、浮動小数点数は小数点とそれに続く指数として表されますが、多くの場合、限られた桁数の近似値で格納されます。浮動小数点数を特定の精度に丸める必要がある場合、それを行う方法がいくつかあります。方法 1.round() 関数round() 関数は、浮動小数点数を最も近い整数に丸めます。浮動小数点数とオプションの精度パラメータを受け入れます。例: $num=1.55;echoround($num);//出力: 2echoround($num,1)

WebSocketとJavaScript:リアルタイム監視システムを実現するためのキーテクノロジー はじめに: インターネット技術の急速な発展に伴い、リアルタイム監視システムは様々な分野で広く利用されています。リアルタイム監視を実現するための重要なテクノロジーの 1 つは、WebSocket と JavaScript の組み合わせです。この記事では、リアルタイム監視システムにおける WebSocket と JavaScript のアプリケーションを紹介し、コード例を示し、その実装原理を詳しく説明します。 1.WebSocketテクノロジー

WebSocket と JavaScript を使用してオンライン予約システムを実装する方法 今日のデジタル時代では、ますます多くの企業やサービスがオンライン予約機能を提供する必要があります。効率的かつリアルタイムのオンライン予約システムを実装することが重要です。この記事では、WebSocket と JavaScript を使用してオンライン予約システムを実装する方法と、具体的なコード例を紹介します。 1. WebSocket とは何ですか? WebSocket は、単一の TCP 接続における全二重方式です。

人気のサーバーサイド スクリプト言語である PHP では、浮動小数点計算を実行するときに精度の低下や計算エラーの問題が頻繁に発生し、プログラムの精度と安定性に影響を与える可能性があります。この記事では、PHP 浮動小数点計算エラーの原因を調査し、いくつかの回避戦略を提案し、参考として具体的なコード例を示します。 1. PHP 浮動小数点計算エラーの理由 コンピューターでは、浮動小数点数は 2 進数形式で表現されますが、2 進数ではすべての 10 進数を正確に表現できないため、浮動小数点数が不正確になります。

JavaScript と WebSocket を使用してリアルタイム オンライン注文システムを実装する方法の紹介: インターネットの普及とテクノロジーの進歩に伴い、ますます多くのレストランがオンライン注文サービスを提供し始めています。リアルタイムのオンライン注文システムを実装するには、JavaScript と WebSocket テクノロジを使用できます。 WebSocket は、TCP プロトコルをベースとした全二重通信プロトコルで、クライアントとサーバー間のリアルタイム双方向通信を実現します。リアルタイムオンラインオーダーシステムにおいて、ユーザーが料理を選択して注文するとき

JavaScript チュートリアル: HTTP ステータス コードを取得する方法、特定のコード例が必要です 序文: Web 開発では、サーバーとのデータ対話が頻繁に発生します。サーバーと通信するとき、多くの場合、返された HTTP ステータス コードを取得して操作が成功したかどうかを判断し、さまざまなステータス コードに基づいて対応する処理を実行する必要があります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法を説明し、いくつかの実用的なコード例を示します。 XMLHttpRequestの使用

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 はじめに: 今日、天気予報の精度は日常生活と意思決定にとって非常に重要です。テクノロジーの発展に伴い、リアルタイムで気象データを取得することで、より正確で信頼性の高い天気予報を提供できるようになりました。この記事では、JavaScript と WebSocket テクノロジを使用して効率的なリアルタイム天気予報システムを構築する方法を学びます。この記事では、具体的なコード例を通じて実装プロセスを説明します。私たちは
