Round to Next .05 in C

前端 未结 5 1340
梦毁少年i
梦毁少年i 2021-01-27 08:44

Consider a float value like 1.82 set by the user. How do I find the next highest .05 value? For the given example the next highest value is 1.85.

Is the

5条回答
  •  天命终不由人
    2021-01-27 09:32

    Code for @Justin's answer. Note that this is very easy to generalize.

    #include 
    #include 
    
    int main(void) {
        int i;
        double numbers[] = {
            1.82, 0.3, 0.2, 0.5, 10000000000.849,
        };
    
        for (i = 0; i < sizeof(numbers)/sizeof(numbers[0]); ++i) {
            double scaled = ceil(20 * numbers[i]);
            printf("%.2f\n", scaled/20.0);
        }
    
        return 0;
    }
    

提交回复
热议问题