簡體   English   中英

輸出除法結果,包括小數點后的數字-Qt

[英]Output division result including digits after decimal - Qt

很抱歉,如果它已經在這里回答了,但是我找不到我想要的確切解決方案。

我試圖輸出兩個變量的除法結果,該結果不斷變化。 結果可能從0.00到100.12314235234523(不完全是具體的,我只是想給您一個想法)。 我想僅在小數點后2位打印結果,如果小數點后沒有任何內容,則應在小數點后打印2個零。

例如:

10/5 = 2.00

23/6 = 3.83

例如,如果輸出為:73.4869999,我不需要四舍五入,我不需要是73.49,73.48就可以了。

到目前為止,我寫的是:

packet_loss[2]->setText(QString("%1%2%3").arg(((data.packet_loss_tx) * 100) / data.packets_tx).
                                          arg(locale.decimalPoint()).
                                          arg((((data.packet_loss_tx) * 100) % data.packets_tx), 2, 10, QChar('0')));

但這會在小數點后打印所有值。 我可以將這部分arg((((data.packet_loss_tx) * 100) % data.packets_tx) 10、100或1000,以減少小數點后的小數位數,但這是arg((((data.packet_loss_tx) * 100) % data.packets_tx)更改一次的變量。輸出是十進制后的3位,然后除以10,我將得到正確的輸出,但是下一個值可能是十進制后的5位,而除以10將得到十進制后的4位。我希望最終輸出僅顯示小數點后2位。

您可以嘗試將QString::number()函數與特定的格式設置選項一起使用(兩位數精度)。 例如:

auto s = QString::number(100.12914235234523, 'f', 2); // Gives "100.13"

此外,如果使用浮點數,最好也將它們與浮點數相乘。 即您需要使用100.0而不是整數值100進行計算。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM