Вниз
Скачать: CL | DM;

преобразование типов   Найти похожие ветки 

← →
***_Diman_***   (2005-07-21 20:02) [0]

немного не в тему, звиняйте. не работает такая вещь
WCHAR szBuffer[10] = тут число в виде ессно строки > "25.00"
float (или double) x;
x = atof(LPCSTR(&Buffer));
вывожу x
wsprintf(szBuffer,TEXT("%.2f"),x);
в szBuffer почему то уходит просто 2.00... ???
какая-то странная конверсия... что не так ?


← →
Fay ©   (2005-07-21 20:09) [1]

2 **_Diman_***   (21.07.05 20:02)
atof, wsprintf - это из какого юнита? А то у меня не компилится...
8)


← →
Eraser ©   (2005-07-21 20:36) [2]

***_Diman_***   (21.07.05 20:02)
что не так ?


а как надо?

Fay ©   (21.07.05 20:09) [1]
это из какого юнита?


;-)


← →
***_Diman_***   (2005-07-22 06:35) [3]

ну и что, что это си... :) здесь многие и си знают, а лучшего форума я ещё не встречал, может здесь помогут


← →
***_Diman_***   (2005-07-22 06:38) [4]

Eraser ©   (21.07.05 20:36) [2]
а как надо?


Что значит "как надо?" надо чтобы число корректно преобразовывалось. 25.00 преобразуется в 2.00 - это явно ненормально. в дельфи это легко и просто но жизнь заставляет си пользовать, а вот с ним несколько проблемно работать


← →
alpet ©   (2005-07-22 07:03) [5]

MSDN мало читаем. Функция  atof (AnsiToFloat) не может работать с юникодовскими строками. В библиотеке Visual C(++) есть парная ей _wtof - как раз для этих целей. Мне еще не понятно, почему у вас компилятор не ругается, на несоотвествие типов.


← →
***_Diman_***   (2005-07-22 07:56) [6]

>alpet
Пасибки, попробую аналог! А в хелпе ни слова о _wtof! поищу... atof работает, но "подхватывает" только первый символ строки, я уж думаю ну неужели все остальные невалидные? ещё раз сенькс.


← →
***_Diman_***   (2005-07-22 08:56) [7]

Мдя... На _wtof ругнулся, сказал undeclared identifier. Весь хелп облазил - никакого эффекта. atol (!) исправно возвращает long с целой частью числа, т.е. из 25.35 вытаскивает 25, atof же выдирает только первую цифру из буфера (ну как уже говорил). Юзаю eMbedded ЦЭ ++ 4.0 может это ЦЭ такой корявый? Как преобразовать строку в float/double ? Если не в лом просветите, сильно благодарен буду.


← →
dmitry501 ©   (2005-07-22 09:02) [8]

Насколько я знаю в PocketPC все строки тока в unicode. Поэтому в eVC нет wtof, т.к. это atof



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.023 c
4-1122192428
SergProger
2005-07-24 12:07
2005.09.11
Мой компьютер


1-1124658022
Ramin
2005-08-22 01:00
2005.09.11
Windowsmediaplayer


6-1116820908
Игорь Лан
2005-05-23 08:01
2005.09.11
Ошибка 10060 что означает?


14-1124089417
Petrovski
2005-08-15 11:03
2005.09.11
Развод на международном уровне?


14-1124150388
User`
2005-08-16 03:59
2005.09.11
Тормозит клавиатура (не смешно)




   Наверх