4

我正在尝试将两个整数值相除并存储为浮点数。

void setup()
{
    lcd.begin(16, 2);

    int l1 = 5;
    int l2 = 15;
    float test = 0;
    test = (float)l1 / (float)l2;

    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print(test);
}

出于某种原因,我期望相当明显,我似乎无法存储和显示正确的值。“测试”变量始终设置为 0。

如何转换整数值?

4

2 回答 2

6

它必须是您的 LCD 打印程序,因此您使用的模型是正确的。

我在 Arduino 上使用串行打印而不是 LCD 进行了尝试。以下完整代码示例的预期结果出现在串行监视器中(由菜单Tools -> Serial Monitor启动):

Start...

5
15
0.33
0.33333334922790

最后一个结果行确认它是一个具有 7-8 个有效数字的4 字节浮点数。

完整的代码示例

/********************************************************************************
 * Test out for Stack Overflow question "Divide two integers in Arduino",       *
 * <http://stackoverflow.com/questions/13792302/divide-two-integers-in-arduino> *
 *                                                                              *
 ********************************************************************************/

// The setup routine runs once when you press reset:
void setup() {
    // Initialize serial communication at 9600 bits per second:
    Serial.begin(9600);

    //The question part, modified for serial print instead of LCD.
    {
        int l1 = 5;
        int l2 = 15;
        float test = 0;
        test = (float)l1 / (float)l2;

        Serial.println("Start...");
        Serial.println("");
        Serial.println(l1);
        Serial.println(l2);
        Serial.println(test);
        Serial.println(test, 14);
    }

} //setup()

void loop()
{
}
于 2012-12-11T18:29:43.950 回答
3

lcd.print不知道如何打印 a float,因此您最终会打印整数。

于 2012-12-09T22:05:17.710 回答