Правила приведения типов или представление действительных чисел - как понять? - страница 3

 

И ещё вопрос. кто-нибудь знает почему

NormalizeDouble(6.99999,5)

Даёт результат 7 , а

NormalizeDouble(6.9999,4)

Даёт результат 6.9999 ?
 
jeronimo:

И ещё вопрос. кто-нибудь знает почему


Странный вопрос. А как ещё округлить 4 знака после запятой до ЧЕТЫРЁХ знаков после запятой
 
evillive:

Странный вопрос. А как ещё округлить 4 знака после запятой до ЧЕТЫРЁХ знаков после запятой
А это ты увидел:
NormalizeDouble(6.99999,5)

Даёт результат 7. 
 
jeronimo:
А это ты увидел:

Ничего не знаю, у меня выдают 6.99999 и 6.9999 соответственно. Нормализация работает только для чисел с бОльшей разрядностью чем задана вторым параметром команды NormalizeDouble. Вот скрипт:


void start()
{
double a=NormalizeDouble(6.99999,5);
double b=NormalizeDouble(6.9999,4);
Print(a,b);
}
 
evillive:

Ничего не знаю, у меня выдают 6.99999 и 6.9999 соответственно. Нормализация работает только для чисел с бОльшей разрядностью чем задана вторым параметром команды NormalizeDouble. Вот скрипт:



мда, у меня
NormalizeDouble(6.99999,5)

выдает 7.



У тебя пятизнак?

 

нет, 4 знак, но на работу того скрипта это никак не влияет

 
jeronimo:
Получилось 7 и что?

Если double заменили на int, 7! С double должно быть дробное, если более 4-х знаков!

Или используйте DoubleToStr() на любое количество знаков.

 
borilunad:
Если double заменили на int, 7! С double должно быть дробное, если более 4-х знаков!

Вопрос в том почему не работает первый вариант из первого поста:

1 вариант.

int start()
{
int delta;

delta=(1.0548-1.0541)/Point;


Comment(delta);
return(0);

}

Результат:delta = 6.


А должно быть 7

 
jeronimo:

Вопрос в том почему не работает первый вариант из первого поста:

1 вариант.

int start()
{
int delta;

delta=(1.0548-1.0541)/Point;


Comment(delta);
return(0);

}

Результат:delta = 6.

А должно быть 7

Любые действия требуют нормализации!
 
borilunad:
Любые действия требуют нормализации!

Согласен. я всё это читал, соответственно то что нужно получить могу, но меня волнует внутренний принцип по которому

происходят вычисления в 1 варианте и получается 6, а не 7.

Кроме того по правилам приведения типов у меня должно быть 7.

Причина обращения: