ロングワードにfloatに変換

E

erio

Guest
こんにちは...第一、申し訳ありませんが私の悪い英語のために、私はあなたが私が何を意味するか理解できたらと願っています。私は `mはfloatデータ型​​の多くが付いているいくつかのプロジェクトをやって。今私はmikrobasic PRO 3.80のDIVまたはMODを使用できるようにロングワードに計算の結果を(floatデータ型​​です)に変換する必要があります。誰も私を助けることができる?マイコン= PIC18F2550 @ 20MHzの宜しくエリオ
 
誰も私を助けることができますか?[/引用]誰にもあなたが長い(?)にfloat型に変換しようとする方法を知っていないために体はあなたを助けることはできません。人々は、変換自体のお手伝いをすることができるかもしれませんが、あなたはそれを変換する方法を決定する必要があります。
 
あなたはフロートfと長い変数lを持っている場合は、単にリットルを書くことができます= f、およびimplicite標準C変換はlにfの整数部分を割り当てます。それはC言語の標準の観点から、あなたの質問に簡単な答えだ。あなたがfloat値の固定小数点表現のような別の何かを、予定の場合は、まず、それぞれの数値の書式を定義する必要があります。基本的には、整数と小数のビット数を指定する必要があります。
 
答えをみんなしていただきありがとうございます...物事をはっきりさせるためには..私はフロートF = 98765.6988を持っているとします。今私はちょうど最も近い整数(ので、上の例の結果は98766になります)への丸めとロングワードに変換したい..最高のエリオに関してはご清聴ありがとうございました
 
ちょうどそれについて考える:FVMは、あなたのfloat型fは小数点以下のポイントを持っていない場合、正確であるあなたへの答えを提供してきました。 98765.4 - fは98765.0の間であれば、通称FVMのアプローチが正しいだろう。 F [ - 98764.9 98764.5]である場合、そのアプローチは間違っているでしょう。正しいことがFVMのアプローチのために上記98765.0 98765.9けど未満に98765.4(番号は、あなたの欲求につき、98765に変換すること) - 本質的に、あなたは98764.5の間の数字を押すと変換する。一つの特定の方法は非常に効率的であることと、そのためにはあまりにも多くの方法があります。
 
implicite Cタイプ変換または(ロング)型キャストの正確な振る舞いは、私の知る限りでは、C標準で指定されていません。特に、IEC仕様は、実装依存のために、このポイントを開きます。特定の実装は単に小数部分を切断された場合、それは別のものとは異なる場合があります。あなたが明確な行動をしたい場合は、round()は、床()またはCEIL()を使用する - 何でもしたい。
 

Welcome to EDABoard.com

Sponsor

Back
Top