Вот есть переменная slovo типа string и она принимает значения в том числе числовые. Подскажите как числовой переменной присвоить значение строковой, если конечно это возможно. Иными словами. я разбил строку на слова 154318 EURUSD 04.01.2005 2:00:01 700000 1.3535 0.00 0.00 -2 с некоторыми из них мне нужно сделать арифметические действия, но ведь они строковые...
Да , спасибо, оказалось все просто, применил Val(slovo, znachenie,code) Жаль, что искать пришлось оооочень долго. Документации для чайников не нашел нигде.
baklan писал(а): Да , спасибо, оказалось все просто, применил Val(slovo, znachenie,code) Жаль, что искать пришлось оооочень долго. Документации для чайников не нашел нигде.
Теперь главное - всешда помни о важгости десятичной точки, для этой процедуры это всегда "."
Guest писал(а): Теперь главное - всешда помни о важгости десятичной точки, для этой процедуры это всегда "."
не понял про точку... , разве в целое число я не могу преобразовать?
Можешь ) Прсто при преобразованиях вещественных значений для Str и Val десятичная точка это всегда ".", а для FloatToStr и StrToFloat это зависит от настроек локализации системы.
Теперь другая проблема, функция StrToFloat описана так Function StrToFloat(Const S : String) : Extended; выходит, что она может преобразовать только константу? а как же с простой переменной?
тут Const имеет несколько инной смысл - в саму процедуру величина передается как константа, то есть при выходе из процедуры не сохраняется результат преобразований переменной S, если такое имело место быть в процедуре.
Компилируется нормально, но при выполнении выдает An unhandled exception occurred at $00408B79 : EConvertError : "" is an invalid float Вот фрагмент кода
var middle : single; slovo : string; ....... middle := StrToFloat (slovo);
Почти наверняка несоответствия либо с разделителем десятичным, либо с разделителем тычяч. Проверь значения переменных ThousandSeparator+'##0'+DecimalSeparator
Имелось в вид следующее: Сорри за невовремя нажатую кнопку
Почти наверняка несоответствия либо с разделителем десятичным, либо с разделителем тычяч. Проверь значения переменных ThousandSeparator и DecimalSeparator.
baklan писал(а): Компилируется нормально, но при выполнении выдает An unhandled exception occurred at $00408B79 : EConvertError : "" is an invalid float Вот фрагмент кода
var middle : single; slovo : string; ....... middle := StrToFloat (slovo);
переменная slovo собирается по символам slovo := slovo + c; и если вывести его не преобразовывая, то оно выводится примерно так 1.2305 Я пробовал и менять точку на запятую, результат тот же. Ну собственно я уже бросил, терпения не хватило, ща накачал кучу документации, разбираюсь пока теоретически. В голове каша, все языки разные...