     viewportRatio   = @$el.width() / @$el.height()
     direction       = if viewportRatio > roomRatio then 'width' else 'height'
     factor          = @$el[direction]() / @$room[direction]()
-    Math.ceil(factor * 100) / 100
+    Math.round(factor * 100) / 100
 
   artworkScalingFactor: ->
     @__artworkFactor__ ?= if @artwork.hasDimension('diameter') and not @artwork.hasDimension('width')

      Math.round(width * @benchRatio)
    else
      1
    @__artworkFactor__ / @$placeholder.width()

  # @return {Array} height, width
  getArtworkDimensions: ->

    @$artwork.css @getRect(@$img)

  getRect: ($el) ->
    _.pick($el[0].getBoundingClientRect(), 'height', 'width', 'top', 'left')

  transitionIn: ->
    @$el.attr 'data-state', 'in'
    @$img.css visibility: 'hidden'

    artworkTransformCSS = @getRect(@$placeholder)

    # We need to manually compute in IE < 11
    if navigator.userAgent.match('MSIE')
      for key in ['top', 'height', 'width']
        artworkTransformCSS[key] = Math.abs(artworkTransformCSS[key] * @roomScalingFactor())
      artworkTransformCSS['left'] = Math.floor( ($(window).innerWidth() - artworkTransformCSS['width']) / 2)

    @$artwork.
      addClass('is-transition').
      css(artworkTransformCSS).
      one($.support.transition.end, =>
        @$artwork.addClass('is-notransition')
        if @artworkScalingFactor() > 1
