The problem occurs when the cint (string to integer) function is used in a macro on strings in which the system language (e.g. German) expects the decimal place after a comma, but in the cell we have an (English) number with a point. A system-compatible number (e.g. 530,3) is interpreted correctly (cint then returns 530), while a point (like a thousand point inserted for readability) is simply ignored. But the result for 530.3 is 5303! There can be an ambiguity in cases with three digits after the point. But in the example above, I would expect to either accept the point like a comma, or at least just ignore the point and the digit after it.
Steps to Reproduce:
1. In a system, where the comma is used in front of the decimal place, write an English number with a single decimal digit behind the point into a cell.
2. Call a macro on this cell, reading its string and calling the cint function to get the corresponding integer for this string.
3.Check the result
The result using 530.3 is 5303.
The expected result would be 530
User Profile Reset: No
Created attachment 176274 [details]
The spreadsheet contains a macro function calling cint on the cell two rows left
I can't repro *exactly* using Russian set as program locale: both
> MsgBox CInt("123.4")
> MsgBox CInt("123,4")
result in "123" shown in the dialog.
However, this is still a bug.
(In reply to Fritz R. Paul from comment #0)
> But in the example above, I would expect to either accept the point like a
> comma, or at least just ignore the point and the digit after it.
The expectation in the description is wrong: what should happen is error, where the input string can't be converted to a number.
For comparison, in VBA one of the two calls above gives Run-time error "13": Type mismatch.