我試圖在Arduino UNO上執行一個算法,它需要一些大數字的const表,有時我會得到溢出值。這個數字是這樣的:628331966747.0Arduino UNO上的const太大const
好的,這是一個很大的,但是它的類型是float(32位),其中最大值是3.4028235e38。所以理論上它應該起作用?
我能對此做些什麼?你知道一個解決方案嗎?
編輯:在Arduino的UNO,雙是exaclty漂浮同一類型(32個比特)
這裏是導致該錯誤的代碼:
float A;
void setup() {
A = 628331966747.0;
Serial.begin(9600);
}
void loop() {
Serial.println(A);
delay(1000);
}
其打印「OVF,OVF, ...,ovf「
什麼是錯誤? – GManNickG
由於浮點數的存儲方式,FWIW'628331966747'不能精確地存儲爲浮點數。在32位浮點數中最接近的表示形式是'628331970560'。然而,雙倍將適合罰款。 – Thebluefish
@GManNickG下面的代碼我發佈我收到「ovf,ovf,ovf ...」對我來說它應該返回類似於:6.283319e011,不是? –