SORU
27 AĞUSTOS 2009, PERŞEMBE


Yuvarlama C 2 Ondalık Sayı

Nasıl C iki ondalık basamak (37.78) için bir şamandıra (37.777779 gibi) tur yapabilir miyim?

CEVAP
27 AĞUSTOS 2009, PERŞEMBE


Eğer sadece çıkış amaçlı sayı turu etmek istiyorsanız, o zaman "%.2f" Biçim dizesi gerçekten de doğru cevap. Eğer gerçekten daha fazla hesaplamalar için bir kayan nokta değeri yuvarlak ki, bir şeyler aşağıdaki gibi çalışır:

#include <math.h>

float val = 37.777779;

float rounded_down = floorf(val * 100) / 100;   /* Result: 37.77 */
float nearest = roundf(val * 100) / 100;  /* Result: 37.78 */
float rounded_up = ceilf(val * 100) / 100;      /* Result: 37.78 */

Seçebilirsiniz üç farklı yuvarlama kuralları vardır dikkat edin: (iki ondalık basamak sonra kesecek yani) aşağı yuvarlama, en yakın yuvarlak ve yuvarlak. Genellikle, yuvarlak yakın istiyorum.

Diğer bazı kişilerin belirttiği gibi, kayan nokta temsil tuhaflıklar nedeniyle, bu yuvarlak değerleri tam olarak "ondalık değerleri, ama çok çok yakın olacaklar." açık olmayabilir

Çok (çok!) özellikle tie-kırma yakın, the Wikipedia article on Rounding görmek yuvarlama kuralları yuvarlama ve daha fazla bilgi.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DroidModderX ROOT Master

    DroidModderX

    14 ŞUBAT 2011
  • FILIPeeeK

    FILIPeeeK

    22 Mayıs 2006
  • Matthew Smith

    Matthew Smit

    24 Mayıs 2010

İLGİLİ SORU / CEVAPLAR