簡體   English   中英

sqrt()pow()fabs()不起作用

[英]sqrt() pow() fabs() do not work

我正在嘗試編譯我的程序,我正在使用sqrt pow和fabs等功能。 我確實包含math.h但由於某種原因我得到的錯誤如下:

    error C2668: 'fabs' : ambiguous call to overloaded function

其他功能相同,包括:

    #include "stdafx.h"
    #include "math.h"

我試過包括但仍然是同樣的錯誤。 有誰知道他們為什么不被承認? 我的文件是.cpp而不是.c但它是一個MFC項目。

謝謝

這是因為這些函數有幾種類型的重載:float,double和long double。 因此,如果傳入一個整數,編譯器就不會選擇哪一個。 一個簡單的解決方法是簡單地傳遞一個double(或乘以你傳入的1.0),這應該可以解決問題。

      int value = rand();
      int result1 = (int)fabs(value*1.0); 
      printf("%d, %d\n", result1, result1);

除此以外:

     int value = rand();
     int result1 = (int)fabs((double)value); 
     printf("%d, %d\n", result1, result1);

暫無
暫無

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

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