|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
28.10.2015, 10:46 | #1 |
Форумчанин
Регистрация: 27.10.2014
Сообщений: 248
|
Разделитель дробной части
всем доброго времени суток!
Прошу подсказать как решить проблему Суть - нужно использовать в качестве разделителя дробной части точку, меняю либо в настройках, либо событие при открытии книги Код:
Значение из ячейки требуется подтянуть в документ xml, формируймый макросом из excel, и вот туда ставится "1,25", т.е. системным разделителем является запятая не смотря на настройки решил проблему так (мне нужен 1 знак после запятой) Код:
что еще можно придумать? лучше было бы конечно что-то поменять в настройках, у меня 2010 офис, поиск в интернете прямого ответа не дал, только то, что я описал в начале |
28.10.2015, 10:57 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
вариант 1. поменять глобально в настройках Windows
вариант 2. задать руками в настройках MS Excel - "Файл" - "Параметры Excel" - "Дополнительно" убрать галочку с "Использовать системные разделители" и задать нужный вручную вариант 3. исправить скрипт выгрузки данных в XML вариант 4. обработать готовый XML файл после выгрузки p.s. ничего не проверял. каждый из вариантов имеет свои достоинства и недостатки. выбирать исходя из конкретных условий. добавлено. ваш код лучше не использовать. на крайний случай можете попробовать такой "хак" Код:
Последний раз редактировалось Serge_Bliznykov; 28.10.2015 в 11:08. |
28.10.2015, 11:16 | #3 |
Форумчанин
Регистрация: 27.10.2014
Сообщений: 248
|
Сергей, спасибо!
Вариант 1 - нет полномочий Вариант 2 - пробовал, не помогло Вариант 3 - тут вроде все нормально Вариант 4 - возможно, не могли бы дать ссылку на пример? |
28.10.2015, 11:59 | #4 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
Имхо, проще его поправить. Цитата:
Но плохо не это, плохо то, что непонятно, какие данные у Вас могут быть в XML допустим, там могут быть строки, содержащие запятые. Их тоже заменять на точки? Универсальное решение не факт, что возможно. Нужно брать реальные XML файлы и на них тестировать |
||
28.10.2015, 12:09 | #5 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
до полного удовлетворения
а для чего нужен этот "XML"? чтобы глазами пробежаться? тогда какая разница что там написано 19.25 или 19,25 в любом случае совершенно не задумываясь по контексту человеческий мозг отличит: что 19. - это не конец предложения, а 25 не начало нового, а это одно число 19 целых 25 сотых что 19,25 это не два числа 19 и 25, а одно 19 целых 25 сотых Regular Expression - это тот инструмент, который позволит 3-мя строками решить задачу 1. создать обьект 2. указать маску 3. заменить в тексте
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
Последний раз редактировалось IgorGO; 28.10.2015 в 12:31. |
28.10.2015, 13:09 | #6 |
Форумчанин
Регистрация: 27.10.2014
Сообщений: 248
|
XML - это стандартный бланк отчетности, который предоставляется через программу с ЭЦП
В Excel происходит расчет данных, и чтобы не перебивать руками, написал макрос Данными будут только цифры - "10,12" и "10,1225648" - отличаются только количеством знаков после запятой макрос довольно большой, место где берутся данные из Excel Код:
|
28.10.2015, 17:40 | #7 |
Старожил
Регистрация: 31.12.2010
Сообщений: 2,133
|
Код:
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
|
30.10.2015, 08:52 | #8 | |
Пользователь
Регистрация: 03.08.2012
Сообщений: 38
|
Уважаемый ТС!
Из Ваших сообщений неясно, как и что читает формируемый XMl. Т.е., заточен ли он на чтение строчного значения с точкой в качестве интерпретируемого децимального знака (именно "1.25" , а не "1,25")? Не исключаю, что это ни как не документировано и определить (предположить) это можно только с помощью научного метода тыка. По второму коду из первого поста: round("1.25",1) и round ("1,25",1) дадут один и тот же результат. Если Вы в дальнейшем для передачи в XML используете функцию Str, то следует помнить, что 0,98 преобразуется в ".98", что можно подправить чем-то вроде Format(str(round(range("A!1",1)))," 0.0") И! Serge_Blyznikov писал: Цитата:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Разделитель дробной части | userrrr | C# (си шарп) | 24 | 02.10.2015 06:33 |
Разделитель целой и дробной части | IgorGO | Microsoft Office Excel | 3 | 25.11.2012 11:08 |
Разделитель целой и дробной части. | gusluk | Общие вопросы Delphi | 2 | 12.11.2008 08:45 |
Разделитель целой и дробной части | neugadal | Microsoft Office Excel | 3 | 09.10.2008 07:20 |
Задать разделитель дробной части | Taurus | Win Api | 1 | 04.09.2007 08:20 |