浮動小数点について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ライアー
記事: 12
登録日時: 12年前

浮動小数点について

#1

投稿記事 by ライアー » 12年前

普通にプログラムを作っていたのですが
余りを使ったループを使おうとしたのですが

どうしてもエラーが出て

浮動小数点の不正な使用というものです

式はCount%3というものです

Countは1秒間に60に分割し、
簡単に言うとCount=60とは1秒のことを指します。

どうしても%を使いたいのですがどうすれば解消されますか?

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: 浮動小数点について

#2

投稿記事 by みけCAT » 12年前

余りを計算する関数を実装する、という方針ではいけませんか?
Count%3という式で、何を求めたいですか?
Countの型はなんですか?
使用している言語はなんですか?
C++なら、独自の型(クラス)を定義して、%演算子をオーバーロードするというテクニックが使えます。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: 浮動小数点について

#3

投稿記事 by みけCAT » 12年前

例えば、%演算子が整数にしか使えないと仮定すると、

コード:

//Countが与えられる
var EPS=0.0000001
var Count2=Gauss(Count*60+EPS) // Gauss関数は引数の値を超えない最大の整数を求める、*演算子は2項の積を求める
var Count_percent_3=(Count2%(3*60))/60 // %演算子で整数同士の余りが求まる、/演算子は割り算を行う
みたいな感じでしょうか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

ライアー
記事: 12
登録日時: 12年前

Re: 浮動小数点について

#4

投稿記事 by ライアー » 12年前

Countの型はdouble型です。
余りを出す関数を実装するというのは?
Count%3で1秒間に20を求めたい
使用してる言語はC言語です

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: 浮動小数点について

#5

投稿記事 by みけCAT » 12年前

「Count%3で1秒間に20を求めたい」とはどういうことですか?
Count%3の値が20の時、1秒を表すようにする、ということですか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

ライアー
記事: 12
登録日時: 12年前

Re: 浮動小数点について

#6

投稿記事 by ライアー » 12年前

1秒間に20回行動するということです。
1秒間={Count=60}だからCount=1は1/60秒であるから
0→1→2→0→1……のループをして
Count%3==0を使って秒間20を出したいというわけです

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 浮動小数点について

#7

投稿記事 by softya(ソフト屋) » 12年前

整数しか扱わないからdoubleである必要性はありません。
そもそも%は整数用の演算子です。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ライアー
記事: 12
登録日時: 12年前

Re: 浮動小数点について

#8

投稿記事 by ライアー » 12年前

ありがとうございます。int型に直してみたら起動しました。

閉鎖

“C言語何でも質問掲示板” へ戻る