Bug 143182 - Format Basic function converts string to number irrespective of format string
Summary: Format Basic function converts string to number irrespective of format string
Status: NEW
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: BASIC (show other bugs)
(earliest affected)
Hardware: All All
: medium normal
Assignee: Not Assigned
Depends on:
Reported: 2021-07-04 14:19 UTC by Mike Kaganski
Modified: 2021-07-07 17:56 UTC (History)
1 user (show)

See Also:
Crash report or crash signature:
Regression By:


Note You need to log in before you can comment on or make changes to this bug.
Description Mike Kaganski 2021-07-04 14:19:10 UTC
In LibreOffice Basic, this call returns "1":

  Format("001", "@")

The format string specifies "put the text as is", but the "001" obviously gets converted to a number before processing.

Note that Format documentation [1] is wrong where it tells "expression: Numeric expression". In fact, this function argument is Variant, and works with input like "Bar" as expected, without converting it to 0. (FTR: the method is specified at [2], implemented in [3], and functionally implemented in [4].)

In VBA, the call above produces the expected "001".

[1] https://help.libreoffice.org/7.2/en-US/text/sbasic/shared/03120301.html?DbPAR=BASIC
[2] https://opengrok.libreoffice.org/xref/core/basic/source/runtime/stdobj.cxx?r=fbaf865f#389
[3] https://opengrok.libreoffice.org/xref/core/basic/source/runtime/methods.cxx?r=4a0b40f1&fi=SbRtl_Format#SbRtl_Format
[4] https://opengrok.libreoffice.org/xref/core/basic/source/sbx/sbxscan.cxx?r=0771ac00&mo=19326&fi=660#660
Comment 1 Andreas Heinisch 2021-07-07 17:56:45 UTC
Confirmed in:

Version: (x64) / LibreOffice Community
Build ID: 0aea0cee58fe77a9058217dfdfc3d6a02b29ee2a
CPU threads: 6; OS: Windows 10.0 Build 19042; UI render: Skia/Raster; VCL: win
Locale: en-US (de_DE); UI: en-US
Calc: CL