相关疑难解决方法(0)

printf双打的舍入行为

有人可以解释这种行为吗?我很清楚浮点数的机器级表示.这似乎与printf及其格式有关.两个数字都用浮点表示法精确表示(检查:乘以64得到一个整数).

#include <stdio.h>
#include <iostream>
using namespace std;

int main() {
  double x1=108.765625;
  printf("%34.30f\n", x1);
  printf("%9.5f\n", x1);
  printf("%34.30f\n", x1*64);

  double x2=108.046875;
  printf("%34.30lf\n", x2);
  printf("%9.5f\n", x2);
  printf("%34.30f\n", x2*64);
}
Run Code Online (Sandbox Code Playgroud)

输出:

> 108.765625000000000000000000000000
> 108.76562
> 6961.000000000000000000000000000000
> 108.046875000000000000000000000000
> 108.04688
> 6915.000000000000000000000000000000
Run Code Online (Sandbox Code Playgroud)

注意,第一个数字向下舍入,第二个数字向上舍入.

c c++ double printf rounding

15
推荐指数
1
解决办法
1万
查看次数

如何将浮点值舍入到小数点后2位?

我从加速度计得到一个漂浮值,如下所示:

-3.04299553323

我想以-3.04为例.是否有简单的方法来舍入浮动值?

编辑:

Objective-C中的舍入数字

cocoa-touch objective-c uikit

12
推荐指数
3
解决办法
5万
查看次数

标签 统计

c ×1

c++ ×1

cocoa-touch ×1

double ×1

objective-c ×1

printf ×1

rounding ×1

uikit ×1