在浮点数的右侧添加零

时间:2017-06-16 08:38:49

标签: c type-conversion converter

我需要这样做(不圆,地板或天花板):

示例:

1.58700023(16bits)

预计为1.58700000

我正在执行此操作:(value-32768.0)/ 32768转换为(浮点数中的字节值为实数值)int他的转换有此错误= X.00000023或其他

2 个答案:

答案 0 :(得分:1)

很可能你不能用花车来做这件事;请注意,并非所有值都可以完全表示为 ID_SINIESTRO piece.agr TIPO_HAB_D DS_PARTE_D DS_ESTETICO_PARTIDA code_bareme total_cost <chr> <chr> <chr> <chr> <chr> <chr> <dbl> 2 100210#000000331493904#2 COC ASE _DIVERS Esteticos P003 344.60 5 100210#000000986776904#2 ASE ASE _DIVERS Directos PB101 174.20 :它毕竟限制为32(通常)位。

对于打印,您应该可以使用:

float

当值转换为字符串时,这将通过舍入打印printf("%.3f", 1.58700023);

答案 1 :(得分:0)

我假设你想用基元实现舍入。

要舍入到四个小数位,乘以10e4,转换为整数(有效截断或删除小数),然后除以浮点值10e4,再将结果转换回浮点数。例如:

#include <stdio.h>

int main()
{
  double f = 1.58700023;
  printf("%10.10f\n", f);

  // Round to 4 decimal places
  double r = (int)(f*10000.0)/10000.0;
  printf("%10.10f\n", r);

  return 0;
}

输出:

1.5870002300
1.5870000000

但是,此例程不支持许多边缘情况。例如,您可能希望添加1 / 10e4的一半来执行舍入到最接近的下一个数字等。