我想開發一個C++程序來將一個數字(比如2.45784e-05)乘以28224次。乘法之後,我必須在輸出上執行另一個任務。爲了自身繁衍的數量,我寫了一個C++程序如下:如何在C++中將一個非常小的數乘以100倍以上?
#include<iostream>
using namespace std;
int main() {
long double x = 2.45784e-05, y = 1;
cout << "Before multiplication, x= " << x << endl;
for (int i = 0; i < 28224; i++) {
y = y * x;
cout <<i+1<<". "<< "y=" << y << endl;
}
return 0;
}
但是,程序給出準確的輸出高達1075倍。之後,它輸出0。結果如下:
Before multiplication, x= 2.45784e-05
1. y=2.45784e-05
2. y=6.04098e-10
3. y=1.48478e-14
4. y=3.64934e-19
.
.
.
1073. y=1.15885e-4946
1074. y=3.6452e-4951
1075. y=0
1076. y=0
.
.
.
28223. y=0
我的朋友們建議我在每次乘以一個常數後乘以x。但我不明白如何將常數與它相乘。請給我一個解決方案來獲得輸出。
您必須編寫一個處理任意精確數字的類 –
並提示:有* preview *功能。您希望我們花時間爲您提供幫助,因此請花費30多秒的時間來正確格式化/縮進所有源代碼! – GhostCat
然後,你的實際問題是類型,如int,long,double ...有一個**範圍**在哪一天的工作。你想花一些時間看看第一個背後的數學問題;澄清你的想法爲自己... – GhostCat