Дополняет ответ @ NoahD
Для большей точности вы можете привести к десятичной дроби:
(decimal)100/863
//0.1158748551564310544611819235
Или:
Decimal.Divide(100, 863)
//0.1158748551564310544611819235
Представлены двойные, выделяющие 64 бита, в то время как десятичное число использует 128
(double)100/863
//0.11587485515643106
Углубленное объяснение "точности"
Для получения более подробной информации о представлении с плавающей запятой в двоичном виде и его точности посмотрите на эту статью от Джона Скита, где он говорит о floats
и doubles
и об этом где он говорит о decimals
.