Hola.
Es que es solo visualización, internamente los cálculos se realizarán como corresponde.
Por ejemplo, este tratamiento del resultado muestra la visualización correcta:
Código PHP:
// (como función por reusabilidad/legibilidad)
double frac(const double numero)
{
return numero - static_cast<int>(numero);
}
//Ej.:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString s;
double nro = 110.0101;
s.sprintf("%f", frac(nro));
ShowMessage(s);
}
Salida:
Si necesitas una mayor precisión podes usar el tipo
long double o recurrir a una biblioteca de terceros especializada.
Saludos