[英]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.