我有一個問題在我的RobotC代碼中當float
達到無窮大,返回-1.#IO
如何捕捉時,浮= -1。#IO
這是如果float
達到-Infinity
時返回的值。
所以問題是float
只能使用數值。我無法捕捉到這個價值。
如果我把
if (value == -1.#IO) { ... }
編譯器說:unexpected #
如果我把
if (value == "-1.#IO") { ... }
編譯器說:char string constant '"-1.#IO"' cannot be compared with value
。這是顯而易見的,因爲它試圖比較一個字符串與float
現在我的公式計算一個值的範圍,其中正負無窮有時可以存在。
所以我需要找到一個方法來捕獲這個值,當它彈出,所以我可以用數值float
值(在這種情況下將爲0)來代替它。
float my_Trig_LawOfSin_2Sides1Angle(float angleA, float sideA, float sideB) //SideA must be opposite AngleA
{
//Catch the divide by 0 on this first line and then return sideA+sideB;
if (angleA == 0) {
return sideA + sideB; //this is to avoid the divide by 0 error
//when the bot is looking straight.
//It will return the distance of the
}
float angleB = (asin(sideB * sin(angleA * (pi/180))/sideA)) * (180/pi);
if (angleB == "-1.#IO") { return 0; }
float angleC = 180 - (angleA + angleB);
float sideC = sideA * sin(angleC * (pi/180))/sin(AngleA * (pi/180));
return sideC;
}
task main()
{
result = my_Trig_LawOfSin_2Sides1Angle(50, 200, 300);
}
閱讀[問]並提供[mcve]。這是絕對不清楚你問什麼或你的問題是什麼 - 除非它是C語言。對於後者,有很好的書籍教授這門語言。 – Olaf
我認爲這很清楚,我試圖使用盡可能少的代碼作爲possable。因此,爲什麼我說如果你想我的製造商,我可以添加它。在我以前的文章中,人們告訴我不要發佈代碼,並且發佈什麼是nessacery,這就是我所做的 – skyline
有非常明確的網站規則。閱讀鏈接。 – Olaf