0

私の問題は、mod 計算から最も正確な結果を取得することです。別の丸め計算を行うために剰余の回答を取得しているため、そのためには正確な結果が必要です。

double a = 0.12345678...(may with many digits);

double b = fmod(a, 0.01);

その結果b、バイナリ格納の問題が不正確になる可能性があります。

float精度を上げるために使用を検討する必要がありますか。または、桁を小数点から整数に移動するだけです

double a = 12345678.0;

ありがとう

4

2 に答える 2

0

私があなたの質問を正しく理解しているなら、あなたはfmodinの結果を求めていますdouble。コメントで Pascal Couq が説明したように、fmodプロトタイプはdouble fmod(double x,double y);次のように実行できます。

#include<stdio.h>
#include<math.h>
int main()
{
  double a = 12.1649232848373633242;
  double b = 1.234;
  double c;
  setbuf(stdout,NULL);
  c = fmod(a,b);

  printf("%.13f",c);//.13 in the format specifiers here describes the number of decimal places upto which you want to get the value .
  return 0;
}
于 2013-07-09T09:32:04.200 に答える