ccs c de en yakın tam sayıya yuvarlama

Extremee

Paylaşımcı üye
Katılım
27 Tem 2012
Mesajlar
106
Puanları
101
Matlabda random komutuyla geçen

random(13.2)=13
random(13.8)=14

sonucunu verecek bir komut var mı ..

biraz basit bir konu olmuş olabilir fakat bu random komutu bana gerekli.

yoksa kendim yazıcam .. kendim yazdığım hoş durmaz komutu varsa onu kullanmam daha iyi olur düşüncesindeyim.
 
Son düzenleme:
Matlabda randomlamıydı o komut , ccs c de ceil ama kullanmadan önce dosyasınıza <math.h> dosyasini yüklemeyi unutmayin. isterseniz aşağı yuvarlayan mevcut:

Alıntı:
Syntax:
result = ceil (value)

Parameters:
value is a float

Returns:
A float

Function:
Computes the smallest integer value greater than the argument. CEIL(12.67) is 13.00.

Availability:
All devices

Requires:
#include <math.h>

Examples:
// Calculate cost based on weight rounded
// up to the next pound

cost = ceil( weight ) * DollarsPerPound;

Example Files:
None

Also See:
floor()


Aşağı yuvarlayan kod için ;


[h=2]floor( )[/h]

Syntax:
result = floor (value)

Parameters:
value is a float

Returns:
result is a float

Function:
Computes the greatest integer value not greater than the argument. Floor (12.67) is 12.00.

Availability:
All devices.

Requires:
#include <math.h>

Examples:
// Find the fractional part of a value

frac = value - floor(value);

Example Files:
None

Also See:
ceil()
 
ceil ve floor komutu yakınlığına bakmaksızın aşağı -yukarı yuvarlar.

CCS :: View topic - convert float value to hex value...

Mesela bine bölüp binle çarpma ve bir tam sayıya eşitleme de kullanılır.
Fload sayıdan tam kısmını çıkarıp büyük / küçük 0.5 kontrolü yapılabilir.
 
math.h komutunuda floor komutunuda ceil komutunuda çok iyi biliyorum ...

zaten bu konuyuda çok utanarak açtım

direct random komutu yok mu

örnek veriyorum

deger=13.2

floor(13.2)=13
ceil(13.2)=14
random(13.2)=13


deger=13.8

floor(13.8)=13
ceil(13.8)=14
random(13.8)=14


ben random arıyorum eğer ccs c de karşılığı yoksa kendim komut yazıcam şık olmaz boşuna rom kaplar ve random komutu kadar hassas sonuç vermez.
 
Doğrudan komutu yok.

Kod:
int round(float fl) 
{ 
//example
  float r = fl - floor(fl); 
  if (r >= 0.5) 

    return((int)ceil(fl)); 
  else 
    return((int)floor(fl)); 
}

Zaten işlemin tanımı bu , bunun hassasiyeti ne olabilir ?
Ancak 32-64 bit gibi düşünürsek ...
Float işlemlerin hepsi çok meşgul eder.
 
%4 rom alıyor 18f4550 den ileriki aşamalarda umarım sorun olmaz..

yardımınız için teşekkürler

böyle bir komut olmadığınıda öğrenmiş oldum.
 

Forum istatistikleri

Konular
130,109
Mesajlar
933,201
Kullanıcılar
453,169
Son üye
Kevsert

Yeni konular

Geri
Üst