如何使用javascript将浮点数格式化为十进制数(7)?

时间:2016-04-20 06:22:10

标签: javascript

我尝试过value.tofixed(7)

当我给int值(3)它的返回小数(7)(例如)3.0000000。 同时,如果我给浮点值(3.3)返回小数(6)(例如)3.300000

如何解决这个问题?

3 个答案:

答案 0 :(得分:0)

我认为你需要使用:
- Math.floor():https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/floor
- 或Math.ceil():https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/ceil
而不是toFixed()。
还有另一种叫做Math.round()的方法,可以自动制作圆形(上方或下方取决于你的数字),而不会询问你关于地板/天花板的问题。

答案 1 :(得分:0)

您可以使用toFixed()返回固定数量的小数点值(舍入)。您还可以使用value.toPrecision(x),它将返回x个总位数。

答案 2 :(得分:0)

  • 3.300000有6个小数位,因为代码舍入一个0来放置3。
  
      
  • 试试这个:
  •   
void read_input()
{
      int i = 0, N = 5;
  char str[STR_SIZE], line[STR_SIZE];
  FILE *fp;

  fp = fopen("out", "r");
  if (!fp)
    {
      fprintf(stderr, "error: file could not be opened\n");
      exit(1);
    }

  for (i = 0; i<2; i++)
    {
      if (fgets(str, STR_SIZE, fp) == NULL)
        {
          fprintf(stderr, "error: failed at file reading\n");
          exit(1);
        }

      if (feof(fp))
        {
          fprintf(stderr, "error: not enough lines in file\n");
          exit(1);
        }

      if ((sscanf(str, "%s", line) != 1) )
        {
          fprintf(stderr, "error: invalid file format\n");
          exit(1);
        }
      printf("%d\t%s\n", i, line);
      fclose(fp);
    }
}

var value = 3;
var n = value.tofixed(7);