簡體   English   中英

C++:這個浮點錯誤問題的解決方案?

[英]C++: Solution to this floating point error problem?

這是我的代碼示例:

float a = 0.f;
float b = 5.f;
float increment = 0.1f;
while(a != b)
    a+=increment;

這將導致無限循環。 是否有任何解決方案,或者解決此問題的唯一方法是設置容差?

盡可能避免使用浮點計算。 在這種情況下,您可以將數字視為 integer,方法是將它們乘以 10,最后除以 10。

float a, b, increment;
int a_i = 0;
int b_i = 50;
int increment_i = 1;
while(a_i != b_i)
    a_i+=increment_i;
a = a_i / 10.f,
b = b_i / 10.f;
increment = increment_i / 10.f;

暫無
暫無

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

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