#1 04-06-2008 03:28

AlphaOmega
Registered: 02-06-2008
Posts: 98

INTEGER vs FLOAT

Здраствуйте.
У меня вот какой вопрос.

Я когда-то написал код для отображения ккординат игрока по Х Y Z. Они отображались в виде FLOAT чисел (с плавующей запятой). Сейчас решил написать код заново, но он либо показывает координаты в INTEGER (целое число) формате (после преобразования) либо показывает гигантские несоответствующие числа если без преобразования.
Скорректируйте кто-нибудь чтобы выводилось не целое число, а с плавующей точкой.

04C4: store_coords_to $MYX $MYY $MYZ from_actor $PLAYER_ACTOR with_offset 0.0 0.0 0.0 
008E: $INTX = float $MYX to_integer 
008E: $INTY = float $MYY to_integer 
008E: $INTZ = float $MYZ to_integer 
02FF: show_text_3numbers GXT 'XYZPOS' numbers $INTX $INTY $INTZ time 100 flag 1

И, кстати, как установить определённое количество символов после запятой?

Offline

#2 04-06-2008 10:25

flashTrash
From: Н.Новгород
Registered: 21-02-2007
Posts: 260
Website

Re: INTEGER vs FLOAT

Ну так а зачему тебя вот это?

008E: $INTX = float $MYX to_integer 
008E: $INTY = float $MYY to_integer 
008E: $INTZ = float $MYZ to_integer

преобразования float в integer? Удали это.

Offline

#3 04-06-2008 11:30

Fess
Registered: 29-04-2008
Posts: 62

Re: INTEGER vs FLOAT

Выводить на экран можно только целые числа, чтобы вывести дробное число его нужно представить в виде двух целых чисел, одно число будет отвечать за целую часть, другое за дробную. Вот код для вывода дробного числа (в 0@), в 2@ запишется целая часть в 0@ дробная, для вывода на экран нужно использовать строку вида "~1~.~1~".

008E: 1@ = float 0@ to_integer // 2@ 0@
0085: 2@ = 1@ // (int) 
1@ *= 1000 // кол-во цифр в дробной части (1000 - 3 цифры)
0@ *= 1000.0 // кол-во цифр в дробной части  (1000 - 3 цифры)
008E: 0@ = float 0@ to_integer
0062: 0@ -= 1@ // (int)
0095: make 0@ absolute_integer
045B: draw_text_2numbers 320.0 390.0 GXT 'TXT' numbers 2@ 0@  // ~1~.~1~

Last edited by Fess (04-06-2008 11:41)

Offline

#4 04-06-2008 13:33

AlphaOmega
Registered: 02-06-2008
Posts: 98

Re: INTEGER vs FLOAT

flashTrash, если удалить, как я говорил выше, то цифры получаются некорректные.
Fess, спасибо - это действительно работает, только вот два момента:
1. помню в вайс сити точно делал через флоаты (не разбивая отдельно на целую и дробную), но это не важно, важно второе:
2. как сделать, чтобы дробная часть была всегда из трёх цифр, то есть не 0.10, а 0.100... ну вообщем с заполняющим нулём.... а то как-то дрыгается ширина строчки........

Last edited by AlphaOmega (04-06-2008 14:05)

Offline

Board footer

Powered by FluxBB