Показать сообщение отдельно
Старый 05.04.2013, 23:39   #58
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Стандарт процессора IEEE 754

using System;

namespace ConsoleApplication2
{
    class Program
    {
        static float FooFloat(float a)
        {
            return a * 42;
        }

        static Single FooSingle(Single a)
        {
            return a * 42;
        }

        static void Main(string[] args)
        {
            float a = FooFloat(10);
            float b = FooSingle(10);
        }
    }
}
и теперь внимания, IL код FooFloat:

.method private hidebysig static float32 
        FooFloat(float32 a) cil managed
{
  // Code size       8 (0x8)
  .maxstack  8
  IL_0000:  ldarg.0
  IL_0001:  ldc.r4     42.
  IL_0006:  mul
  IL_0007:  ret
} // end of method Program::FooFloat
FooSingle:
.method private hidebysig static float32 
        FooSingle(float32 a) cil managed
{
  // Code size       8 (0x8)
  .maxstack  8
  IL_0000:  ldarg.0
  IL_0001:  ldc.r4     42.
  IL_0006:  mul
  IL_0007:  ret
} // end of method Program::FooSingle
IL код идентичен. функции выполняю одно и то-же. ибо, как говорилось раньше, Single это псевдоним float. Т.е. идея, которою тебе предложили, крайне неадекватна.

адекватную идею кидал джимон. решайте все на типах с фиксированной точкой.
например вот, классик:
http://stackoverflow.com/questions/6...oint-math-in-c

сам не проверял, поэтому работоспособность не гарантирую.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо HolyDel за это полезное сообщение:
Fockerian (06.04.2013), St_AnGer (06.04.2013)