0
從係數和10的冪次創建雙精度的好方法是什麼?或者換句話說,在運行時從書寫的科學記數值的有效數和指數中創建一個double的好方法是什麼?如何在C/C++中創建一個來自係數和10的冪的double?
從係數和10的冪次創建雙精度的好方法是什麼?或者換句話說,在運行時從書寫的科學記數值的有效數和指數中創建一個double的好方法是什麼?如何在C/C++中創建一個來自係數和10的冪的double?
不知道有關數值質量,但顯而易見的方法是:
double make_double(double coefficient, int power)
{
return coefficient * pow(10.0, power);
}
如果你擔心數字質量,那麼爲了安全起見,你可以寫一個字符串並傳遞給strtod。係數的精確度可能仍然會導致問題,但對於輸入中已存在的不準確性,您可以做的不多。 –
出了什麼問題'係數* POW(10.0,指數)'? – Henrik
對於_two_的力量,你可以使用[std :: ldexp](http://en.cppreference.com/w/cpp/numeric/math/ldexp),但是對於'std :: pow'的力量,全是你有。 –
沒有「科學記數法」的價值 - 科學記數法是價值的文本表示。 – molbdnilo