# Opera: Integer Percentages Bug

Testcase: Dirk Jesse [26.03.08 ] highresolution.info

Since years now, Opera (all versions) has an annoying bug in its interpretation of percentage values for element widths. Let's take a look into W3C's Specification for CSS2 from 1998.

In chapter 4.3.1 *<integer>* and *<number>* values are defined:

Some value types may have **integer** values (denoted by **<integer>**) or **real number** values (denoted by **<number>**). Real numbers and integers are specified in decimal notation only. An <integer> consists of one or more digits "0" to "9". **A <number> can either be an <integer>, or it can be zero or more digits followed by a dot (.) followed by one or more digits.** Both integers and real numbers may be preceded by a "-" or "+" to indicate the sign.

For percentage values, the specification tells us in chapter 4.3.3:

The format of a percentage value (denoted by <percentage> in this specification) is an optional sign character ('+' or '-', with '+' being the default) immediately followed by a **<number>** immediately followed by '%'.

## Bug Description

Next to this paragraph there are two floating DIV containers. The left one has a width of 66.666%, the right one has a width of 33.333%. As percentage values are real numbers, there should be no gap between them. Opera however, cuts the digits behind the dot and handles them as integer values (66% and 33%). That's why in Opera you will see a gap with exactly 1% witdh between both containers.

## Live Example

View this website in Opera browser to see the gap.

`#left { `

float: left;

`width: 66.666%;`

...

}

`#right { `

float: right;

`width: 33.333%;`

...

}