fabs(t)<1e-6可以認為t為零嗎?如果能,那怎么表示大于零和小與零呢?
uj5u.com熱心網友回復:
#include<stdio.h>
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
double t = -0.00000001;
cout << (fabs(t) < 1e-6) << endl;
cout << (t < 0.0) << endl;
return 0;
}
請參考。
uj5u.com熱心網友回復:
謝了,那double型是不是不能直接寫一個變數==0啊,為什么uj5u.com熱心網友回復:
浮點數的存盤形式,決定了它沒有絕對的0,所有要用一個極小的趨近于0的值表示0uj5u.com熱心網友回復:
那儲存形式是怎樣的呢?uj5u.com熱心網友回復:
float 是32位, 有效數字是6~7 位, 對于float型別可以 fabs小于1e-6double是64位, 有效數字是是12~13位, 對于double型別可以fabs小于1e-12
浮點數比較,你可以看看我早期的博客 https://blog.csdn.net/happy__888/article/details/280627
uj5u.com熱心網友回復:
不能吧,很危險的寫法
uj5u.com熱心網友回復:
為什么啊,老哥uj5u.com熱心網友回復:
可以是可以 但最好不要轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/130068.html
標籤:C++ 語言
上一篇:c++ 小白的問題
下一篇:求幫
