Roundtrip Formatlama Nedir
String' çevirip tekrar floating pointe çevirmeyi garanti etmek için kullanılır
C
Şu tarz kodları kullanmamak lazım. Çünkü 56 çok büyük bir rakam
float için 7 double için 17 precision kullanırız.
R'nin açıklaması şöyle
String' çevirip tekrar floating pointe çevirmeyi garanti etmek için kullanılır
C
Şu tarz kodları kullanmamak lazım. Çünkü 56 çok büyük bir rakam
double a = 0.1;
printf("a is %0.56f\n", a);
C++float için 7 double için 17 precision kullanırız.
C#float myfloat = 3.14159625F;
double mydouble = v;
std::stringstream s;
// Setting the stream state:
s << std::setprecision(9) << v << " "
<< std::setprecision(17) << vv;
float myfloat_in;
double mydouble_in;
s >> myfloat_in >> mydouble_in;
assert(myfloat == myfloat_in && mydouble == mydouble_in);
R'nin açıklaması şöyle
Basitçe şöyle kullanırız:"R" or "r" Round-trip Result: A string that can round-trip to an identical number. Supported by: Single, Double, and BigInteger. Precision specifier: Ignored.
double d1 = 0.84551240822557006;
string s = d1.ToString("R");
double d2 = double.Parse(s);
Eğer round trip yapmazsak hatalarla karşılaşabiliriz.float maxFloat = float.MaxValue;
string s = maxFloat.ToString();
float result = float.Parse(s); // same with Convert.ToSingle(s);
bool mustEqual = (maxFloat == result);
// It returns FALSE, why?
Hiç yorum yok:
Yorum Gönder