C ++のsqrt、sqrtl、およびsqrtf
C ++のcmathライブラリには、sqrtを除いて、平方根を取得するためのさまざまな関数があります。 sqrtは、基本的にダブルタイプの入力に使用されます。その他は、float、long型データなどに使用されます。これらの関数の使用法を見てみましょう。
sqrt()関数
この関数は、double型のデータに使用されます。したがって、これはdouble型の平方根を返します。構文は次のようになります。
double sqrt(double argument)
例
#include <cmath> #include <iomanip> #include <iostream> using namespace std; main() { double x = 144.0; double y = 180.0; cout << fixed << setprecision(12) << sqrt(x) << endl; cout << fixed << setprecision(12) << sqrt(y) << endl; }
出力
12.000000000000 13.416407864999
引数を入れる必要があることに注意してください。そうしないと、エラーが返されます。また、引数が負の場合、NaNも返されます。
sqrtf()関数
この関数は、フローティングタイプのデータに使用されます。したがって、これはfloat型の平方根を返します。構文は次のようになります。
float sqrtf(float argument)
例
#include <cmath> #include <iomanip> #include <iostream> using namespace std; main() { float x = 144.0; float y = 180.0; cout << fixed << setprecision(6) << sqrtf(x) << endl; cout << fixed << setprecision(6) << sqrtf(y) << endl; }
出力
12.000000 13.416408
引数を入れる必要があることに注意してください。そうしないと、エラーが返されます。また、引数が負の場合、NaNも返されます。
sqrtl()関数
この関数は、長いdouble型のデータに使用されます。したがって、これはlongdouble型の平方根を返します。これは2倍になり、精度が高くなります。 1018次の整数を使用している場合、この関数は役立ちます。
long double sqrtl(long double argument)
例
#include <cmath> #include <iomanip> #include <iostream> using namespace std; main() { long long int x = 5000000000000000000; long long int y = 999999999999999999; cout << fixed << setprecision(12) << sqrtl(x) << endl; cout << fixed << setprecision(12) << sqrtl(y) << endl; }
出力
2236067977.499789696420 999999999.999999999476
-
C++での直方体の体積と表面積のプログラム
直方体とは何ですか? 直方体は、長方形の6つの面を持つ3次元オブジェクトです。つまり、辺の長さと幅が異なります。立方体と直方体の違いは、立方体の長さ、高さ、幅が等しいのに対し、直方体ではこれら3つは同じではないことです 直方体の特性は次のとおりです- 6つの顔 12個のエッジ 8つの頂点 以下は立方体の図です 問題 長さ、幅、体積が与えられた場合、タスクは直方体の総表面積と体積を見つけることです。ここで、表面積は面が占めるスペースであり、体積は形状に含めることができるスペースです。 直方体の表面積と体積を計算するには、式があります 表面積=2(| * w + w * h
-
C ++でfloatとdoubleを比較する方法は?
float変数とdouble変数の比較は、最終目標が何であるかによって異なります。詳細をあまり説明せずに実行可能な関数が必要で、一部の不正確な計算で問題が発生しない場合は、次の関数を使用できます- 例 #include<iostream> using namespace std; // Define the error that you can tolerate #define EPSILON 0.000001 bool areSame(double a, double b) { return fabs(a - b) < EPSILON; }